https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f9c57f84898ada4d39184…
commit f9c57f84898ada4d391849497754101fc55b2a75
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Fri Jan 19 00:09:29 2018 +0100
Commit: Amine Khaldi <amine.khaldi(a)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