Win64 patch 3/5 (winedbg)
Ge van Geldorp
ge at gse.nl
Sat Jul 1 03:34:38 CDT 2006
> From: Eric Pouech [mailto:eric.pouech at wanadoo.fr]
>
> this one is questionnable. Now that we have stackwalk64
> implemented (I'm not saying it works flawlessly on 64bit
> machines), it may be more interesting here to use the 64 bit
> version of the call back
That's actually a separate issue. The problem I'm trying to solve here is
that the last parameter of ReadProcessMemory (which is the API that is
eventually called by pcs->process_io->read()) is defined as SIZE_T *, which
expands to a pointer to 8 bytes on Win64. The last parameter of the
ReadMemoryRoutine callback of StackWalk is PDWORD, pointer to 4 bytes. So
you can't pass the last parameter of the ReadMemoryRoutine callback on to
pcs->process_io->read(), you'd write 8 bytes to a 4 byte variable.
Unfortunately, switching to StackWalk64 doesn't solve this. The last
parameter of the ReadMemoryRoutine callback of StackWalk is still a pointer
to 4 bytes (PDWORD in Wine, LPDWORD in PSDK). Switching to StackWalk64 is
ofcourse a good idea, but we still need the patch as submitted.
Gé van Geldorp.
More information about the wine-devel
mailing list