1
0
mirror of https://github.com/wine-mirror/wine synced 2024-06-29 06:14:34 +00:00

winedbg: Don't reload a minidump for a different machine.

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
This commit is contained in:
Eric Pouech 2024-03-21 16:13:34 +01:00 committed by Alexandre Julliard
parent 70d11a59c6
commit a7ad588ec5

View File

@ -303,9 +303,10 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data)
if (MiniDumpReadDumpStream(data->mapping, SystemInfoStream, &dir, &stream, NULL))
{
MINIDUMP_SYSTEM_INFO* msi = stream;
const char *str;
char tmp[128];
MINIDUMP_SYSTEM_INFO *msi = stream;
USHORT machine = IMAGE_FILE_MACHINE_UNKNOWN;
const char *str;
char tmp[128];
dbg_printf("WineDbg starting minidump on pid %04lx\n", pid);
switch (msi->ProcessorArchitecture)
@ -314,6 +315,7 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data)
str = "Unknown";
break;
case PROCESSOR_ARCHITECTURE_INTEL:
machine = IMAGE_FILE_MACHINE_I386;
strcpy(tmp, "x86 [");
switch (msi->ProcessorLevel)
{
@ -355,6 +357,7 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data)
str = "PowerPC";
break;
case PROCESSOR_ARCHITECTURE_AMD64:
machine = IMAGE_FILE_MACHINE_AMD64;
str = "X86_64";
break;
case PROCESSOR_ARCHITECTURE_ARM:
@ -462,6 +465,15 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data)
code + wes[1], code + wes[2], code + wes[3]);
}
}
if (machine == IMAGE_FILE_MACHINE_UNKNOWN
#ifdef __x86_64__
|| machine == IMAGE_FILE_MACHINE_I386
#endif
)
{
dbg_printf("Cannot reload this minidump because of incompatible/unsupported machine %x\n", machine);
return FALSE;
}
}
dbg_curr_process = dbg_add_process(&be_process_minidump_io, pid, hProc);