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