[PATCH] dbghelp: Read process memory using target addresses, not debugger.

Rémi Bernon rbernon at codeweavers.com
Fri Dec 4 10:34:08 CST 2020


This fixes "wine winedbg --gdb winecfg" not working anymore.

There was a regression since f40195cd9206, but the environment read was
broken before. 

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---

 dlls/dbghelp/dbghelp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/dbghelp/dbghelp.c b/dlls/dbghelp/dbghelp.c
index e38687412eb..00d7b61fbd8 100644
--- a/dlls/dbghelp/dbghelp.c
+++ b/dlls/dbghelp/dbghelp.c
@@ -311,8 +311,8 @@ static BOOL check_live_target(struct process* pcs)
     {
         PEB peb;
         if (!ReadProcessMemory(pcs->handle, pbi.PebBaseAddress, &peb, sizeof(peb), NULL)) return FALSE;
-        if (!ReadProcessMemory(pcs->handle, &peb.CloudFileFlags, &base, sizeof(base), NULL)) return FALSE;
-        ReadProcessMemory(pcs->handle, &peb.ProcessParameters->Environment, &env, sizeof(env), NULL);
+        if (!ReadProcessMemory(pcs->handle, (char *)pbi.PebBaseAddress + FIELD_OFFSET(PEB, CloudFileFlags), &base, sizeof(base), NULL)) return FALSE;
+        ReadProcessMemory(pcs->handle, (char *)peb.ProcessParameters + FIELD_OFFSET(RTL_USER_PROCESS_PARAMETERS, Environment), &env, sizeof(env), NULL);
     }
 
     /* read debuggee environment block */
-- 
2.29.2




More information about the wine-devel mailing list