https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f9c57f84898ada4d391849...
commit f9c57f84898ada4d391849497754101fc55b2a75 Author: Amine Khaldi amine.khaldi@reactos.org AuthorDate: Fri Jan 19 00:09:29 2018 +0100 Commit: Amine Khaldi amine.khaldi@reactos.org CommitDate: Fri Jan 19 00:09:29 2018 +0100
[DBGHELP] Sync with Wine 3.0. CORE-14225 --- dll/win32/dbghelp/cpu_arm64.c | 69 +++++++++++++++++++++--------------------- dll/win32/dbghelp/cpu_i386.c | 6 ++-- dll/win32/dbghelp/elf_module.c | 8 ++--- media/doc/README.WINE | 2 +- 4 files changed, 41 insertions(+), 44 deletions(-)
diff --git a/dll/win32/dbghelp/cpu_arm64.c b/dll/win32/dbghelp/cpu_arm64.c index 68cff95eaa..a2a0bb4df9 100644 --- a/dll/win32/dbghelp/cpu_arm64.c +++ b/dll/win32/dbghelp/cpu_arm64.c @@ -160,41 +160,40 @@ static void* arm64_fetch_context_reg(CONTEXT* ctx, unsigned regno, unsigned* siz #ifdef __aarch64__ switch (regno) { - case CV_ARM64_PSTATE: *size = sizeof(ctx->Cpsr); return &ctx->Cpsr; - case CV_ARM64_X0 + 0: *size = sizeof(ctx->X0); return &ctx->X0; - case CV_ARM64_X0 + 1: *size = sizeof(ctx->X1); return &ctx->X1; - case CV_ARM64_X0 + 2: *size = sizeof(ctx->X2); return &ctx->X2; - case CV_ARM64_X0 + 3: *size = sizeof(ctx->X3); return &ctx->X3; - case CV_ARM64_X0 + 4: *size = sizeof(ctx->X4); return &ctx->X4; - case CV_ARM64_X0 + 5: *size = sizeof(ctx->X5); return &ctx->X5; - case CV_ARM64_X0 + 6: *size = sizeof(ctx->X6); return &ctx->X6; - case CV_ARM64_X0 + 7: *size = sizeof(ctx->X7); return &ctx->X7; - case CV_ARM64_X0 + 8: *size = sizeof(ctx->X8); return &ctx->X8; - case CV_ARM64_X0 + 9: *size = sizeof(ctx->X9); return &ctx->X9; - case CV_ARM64_X0 + 10: *size = sizeof(ctx->X10); return &ctx->X10; - case CV_ARM64_X0 + 11: *size = sizeof(ctx->X11); return &ctx->X11; - case CV_ARM64_X0 + 12: *size = sizeof(ctx->X12); return &ctx->X12; - case CV_ARM64_X0 + 13: *size = sizeof(ctx->X13); return &ctx->X13; - case CV_ARM64_X0 + 14: *size = sizeof(ctx->X14); return &ctx->X14; - case CV_ARM64_X0 + 15: *size = sizeof(ctx->X15); return &ctx->X15; - case CV_ARM64_X0 + 16: *size = sizeof(ctx->X16); return &ctx->X16; - case CV_ARM64_X0 + 17: *size = sizeof(ctx->X17); return &ctx->X17; - case CV_ARM64_X0 + 18: *size = sizeof(ctx->X18); return &ctx->X18; - case CV_ARM64_X0 + 19: *size = sizeof(ctx->X19); return &ctx->X19; - case CV_ARM64_X0 + 20: *size = sizeof(ctx->X20); return &ctx->X20; - case CV_ARM64_X0 + 21: *size = sizeof(ctx->X21); return &ctx->X21; - case CV_ARM64_X0 + 22: *size = sizeof(ctx->X22); return &ctx->X22; - case CV_ARM64_X0 + 23: *size = sizeof(ctx->X23); return &ctx->X23; - case CV_ARM64_X0 + 24: *size = sizeof(ctx->X24); return &ctx->X24; - case CV_ARM64_X0 + 25: *size = sizeof(ctx->X25); return &ctx->X25; - case CV_ARM64_X0 + 26: *size = sizeof(ctx->X26); return &ctx->X26; - case CV_ARM64_X0 + 27: *size = sizeof(ctx->X27); return &ctx->X27; - case CV_ARM64_X0 + 28: *size = sizeof(ctx->X28); return &ctx->X28; - - case CV_ARM64_FP: *size = sizeof(ctx->Fp); return &ctx->Fp; - case CV_ARM64_LR: *size = sizeof(ctx->Lr); return &ctx->Lr; - case CV_ARM64_SP: *size = sizeof(ctx->Sp); return &ctx->Sp; - case CV_ARM64_PC: *size = sizeof(ctx->Pc); return &ctx->Pc; + case CV_ARM64_X0 + 0: + case CV_ARM64_X0 + 1: + case CV_ARM64_X0 + 2: + case CV_ARM64_X0 + 3: + case CV_ARM64_X0 + 4: + case CV_ARM64_X0 + 5: + case CV_ARM64_X0 + 6: + case CV_ARM64_X0 + 7: + case CV_ARM64_X0 + 8: + case CV_ARM64_X0 + 9: + case CV_ARM64_X0 + 10: + case CV_ARM64_X0 + 11: + case CV_ARM64_X0 + 12: + case CV_ARM64_X0 + 13: + case CV_ARM64_X0 + 14: + case CV_ARM64_X0 + 15: + case CV_ARM64_X0 + 16: + case CV_ARM64_X0 + 17: + case CV_ARM64_X0 + 18: + case CV_ARM64_X0 + 19: + case CV_ARM64_X0 + 20: + case CV_ARM64_X0 + 21: + case CV_ARM64_X0 + 22: + case CV_ARM64_X0 + 23: + case CV_ARM64_X0 + 24: + case CV_ARM64_X0 + 25: + case CV_ARM64_X0 + 26: + case CV_ARM64_X0 + 27: + case CV_ARM64_X0 + 28: *size = sizeof(ctx->u.X[0]); return &ctx->u.X[regno - CV_ARM64_X0]; + case CV_ARM64_PSTATE: *size = sizeof(ctx->Cpsr); return &ctx->Cpsr; + case CV_ARM64_FP: *size = sizeof(ctx->Fp); return &ctx->Fp; + case CV_ARM64_LR: *size = sizeof(ctx->Lr); return &ctx->Lr; + case CV_ARM64_SP: *size = sizeof(ctx->Sp); return &ctx->Sp; + case CV_ARM64_PC: *size = sizeof(ctx->Pc); return &ctx->Pc; } #endif FIXME("Unknown register %x\n", regno); diff --git a/dll/win32/dbghelp/cpu_i386.c b/dll/win32/dbghelp/cpu_i386.c index f0cf33aaf8..c713049cf2 100644 --- a/dll/win32/dbghelp/cpu_i386.c +++ b/dll/win32/dbghelp/cpu_i386.c @@ -215,16 +215,16 @@ static BOOL i386_stack_walk(struct cpu_stack_walk* csw, LPSTACKFRAME64 frame, CO /* Init done */ set_curr_mode((frame->AddrPC.Mode == AddrModeFlat) ? stm_32bit : stm_16bit);
- /* cur_switch holds address of SystemReserved1[0] field in TEB in debuggee + /* cur_switch holds address of WOW32Reserved field in TEB in debuggee * address space */ if (NtQueryInformationThread(csw->hThread, ThreadBasicInformation, &info, sizeof(info), NULL) == STATUS_SUCCESS) { - curr_switch = (DWORD_PTR)info.TebBaseAddress + FIELD_OFFSET(TEB, SystemReserved1[0]); + curr_switch = (DWORD_PTR)info.TebBaseAddress + FIELD_OFFSET(TEB, WOW32Reserved); if (!sw_read_mem(csw, curr_switch, &p, sizeof(p))) { - WARN("Can't read TEB:SystemReserved1[0]\n"); + WARN("Can't read TEB:WOW32Reserved\n"); goto done_err; } next_switch = p; diff --git a/dll/win32/dbghelp/elf_module.c b/dll/win32/dbghelp/elf_module.c index b44d988d02..2edab86b70 100644 --- a/dll/win32/dbghelp/elf_module.c +++ b/dll/win32/dbghelp/elf_module.c @@ -1471,11 +1471,9 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename, if (!ret && !strchrW(filename, '/')) { ret = elf_load_file_from_path(pcs, filename, load_offset, dyn_addr, - getenv("PATH"), elf_info); - if (!ret) ret = elf_load_file_from_path(pcs, filename, load_offset, dyn_addr, - getenv("LD_LIBRARY_PATH"), elf_info); - if (!ret) ret = elf_load_file_from_path(pcs, filename, load_offset, dyn_addr, - BINDIR, elf_info); + getenv("PATH"), elf_info) || + elf_load_file_from_path(pcs, filename, load_offset, dyn_addr, + getenv("LD_LIBRARY_PATH"), elf_info); if (!ret) ret = elf_load_file_from_dll_path(pcs, filename, load_offset, dyn_addr, elf_info); } diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 1d25ea7149..5e4932e3ad 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -63,7 +63,7 @@ reactos/dll/win32/cryptdlg # Synced to WineStaging-2.9 reactos/dll/win32/cryptdll # Synced to WineStaging-2.9 reactos/dll/win32/cryptnet # Synced to WineStaging-2.9 reactos/dll/win32/cryptui # Synced to WineStaging-2.16 -reactos/dll/win32/dbghelp # Synced to WineStaging-2.16 +reactos/dll/win32/dbghelp # Synced to Wine-3.0 reactos/dll/win32/dciman32 # Synced to WineStaging-2.9 reactos/dll/win32/faultrep # Synced to WineStaging-2.9 reactos/dll/win32/fontsub # Synced to WineStaging-2.9