winedbg: Fix minidump support on 64bit OSes (don't clamp addresses out of 64bit minidumps).
This commit is contained in:
parent
f4f3033daa
commit
a18fdfc07e
|
@ -40,9 +40,17 @@ WINE_DEFAULT_DEBUG_CHANNEL(winedbg);
|
||||||
|
|
||||||
static struct be_process_io be_process_minidump_io;
|
static struct be_process_io be_process_minidump_io;
|
||||||
|
|
||||||
static DWORD64 get_addr64(DWORD64 addr)
|
/* we need this function on 32bit hosts to ensure we zero out the higher DWORD
|
||||||
|
* stored in the minidump file (sometimes it's not cleared, or the conversion from
|
||||||
|
* 32bit to 64bit wide integers is done as signed, which is wrong)
|
||||||
|
* So we clamp on 32bit CPUs (as stored in minidump information) all addresses to
|
||||||
|
* keep only the lower 32 bits.
|
||||||
|
* FIXME: as of today, since we don't support a backend CPU which is different from
|
||||||
|
* CPU this process is running on, casting to (DWORD_PTR) will do just fine.
|
||||||
|
*/
|
||||||
|
static inline DWORD64 get_addr64(DWORD64 addr)
|
||||||
{
|
{
|
||||||
return addr & 0xFFFFFFFF;
|
return (DWORD_PTR)addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void minidump_write(const char* file, const EXCEPTION_RECORD* rec)
|
void minidump_write(const char* file, const EXCEPTION_RECORD* rec)
|
||||||
|
|
Loading…
Reference in New Issue