Commit 06b41408 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

winedbg, winedump: Extended some info printed from system info directory in minidump about the CPU.

parent 0fc4013f
...@@ -212,32 +212,33 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data) ...@@ -212,32 +212,33 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data)
dbg_printf("WineDbg starting on minidump on pid %04x\n", pid); dbg_printf("WineDbg starting on minidump on pid %04x\n", pid);
switch (msi->ProcessorArchitecture) switch (msi->ProcessorArchitecture)
{ {
case PROCESSOR_ARCHITECTURE_UNKNOWN: case PROCESSOR_ARCHITECTURE_UNKNOWN:
str = "Unknown"; str = "Unknown";
break; break;
case PROCESSOR_ARCHITECTURE_INTEL: case PROCESSOR_ARCHITECTURE_INTEL:
strcpy(tmp, "Intel "); strcpy(tmp, "Intel ");
switch (msi->ProcessorLevel) switch (msi->ProcessorLevel)
{ {
case 3: str = "80386"; break; case 3: str = "80386"; break;
case 4: str = "80486"; break; case 4: str = "80486"; break;
case 5: str = "Pentium"; break; case 5: str = "Pentium"; break;
case 6: str = "Pentium Pro/II"; break; case 6: str = "Pentium Pro/II or AMD Athlon"; break;
case 15: str = "Pentium 4 or AMD Athlon64"; break;
default: str = "???"; break; default: str = "???"; break;
} }
strcat(tmp, str); strcat(tmp, str);
if (msi->ProcessorLevel == 3 || msi->ProcessorLevel == 4) if (msi->ProcessorLevel == 3 || msi->ProcessorLevel == 4)
{ {
if (HIWORD(msi->ProcessorRevision) == 0xFF) if (HIWORD(msi->ProcessorRevision) == 0xFF)
sprintf(tmp + strlen(tmp), "-%c%d", sprintf(tmp + strlen(tmp), " (%c%d)",
'A' + HIBYTE(LOWORD(msi->ProcessorRevision)), 'A' + HIBYTE(LOWORD(msi->ProcessorRevision)),
LOBYTE(LOWORD(msi->ProcessorRevision))); LOBYTE(LOWORD(msi->ProcessorRevision)));
else else
sprintf(tmp + strlen(tmp), "-%c%d", sprintf(tmp + strlen(tmp), " (%c%d)",
'A' + HIWORD(msi->ProcessorRevision), 'A' + HIWORD(msi->ProcessorRevision),
LOWORD(msi->ProcessorRevision)); LOWORD(msi->ProcessorRevision));
} }
else sprintf(tmp + strlen(tmp), "-%d.%d", else sprintf(tmp + strlen(tmp), " (%d.%d)",
HIWORD(msi->ProcessorRevision), HIWORD(msi->ProcessorRevision),
LOWORD(msi->ProcessorRevision)); LOWORD(msi->ProcessorRevision));
str = tmp; str = tmp;
...@@ -256,7 +257,7 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data) ...@@ -256,7 +257,7 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data)
break; break;
} }
dbg_printf(" %s was running on #%d %s CPU%s", dbg_printf(" %s was running on #%d %s CPU%s",
exec_name, msi->u.s.NumberOfProcessors, str, exec_name, msi->u.s.NumberOfProcessors, str,
msi->u.s.NumberOfProcessors < 2 ? "" : "s"); msi->u.s.NumberOfProcessors < 2 ? "" : "s");
switch (msi->MajorVersion) switch (msi->MajorVersion)
{ {
......
...@@ -249,28 +249,30 @@ void mdmp_dump(void) ...@@ -249,28 +249,30 @@ void mdmp_dump(void)
printf("System Information:\n"); printf("System Information:\n");
switch (msi->ProcessorArchitecture) switch (msi->ProcessorArchitecture)
{ {
case PROCESSOR_ARCHITECTURE_UNKNOWN: case PROCESSOR_ARCHITECTURE_UNKNOWN:
str = "Unknown"; str = "Unknown";
break; break;
case PROCESSOR_ARCHITECTURE_INTEL: case PROCESSOR_ARCHITECTURE_INTEL:
strcpy(tmp, "Intel "); strcpy(tmp, "Intel ");
switch (msi->ProcessorLevel) switch (msi->ProcessorLevel)
{ {
case 3: str = "80386"; break; case 3: str = "80386"; break;
case 4: str = "80486"; break; case 4: str = "80486"; break;
case 5: str = "Pentium"; break; case 5: str = "Pentium"; break;
case 6: str = "Pentium Pro/II"; break; case 6: str = "Pentium Pro/II or AMD Athlon"; break;
case 15: str = "Pentium 4 or AMD Athlon64"; break;
default: str = "???"; break; default: str = "???"; break;
} }
strcat(tmp, str); strcat(tmp, str);
strcat(tmp, " (");
if (msi->ProcessorLevel == 3 || msi->ProcessorLevel == 4) if (msi->ProcessorLevel == 3 || msi->ProcessorLevel == 4)
{ {
if (HIWORD(msi->ProcessorRevision) == 0xFF) if (HIWORD(msi->ProcessorRevision) == 0xFF)
sprintf(tmp + strlen(tmp), "-%c%d", 'A' + HIBYTE(LOWORD(msi->ProcessorRevision)), LOBYTE(LOWORD(msi->ProcessorRevision))); sprintf(tmp + strlen(tmp), "%c%d", 'A' + HIBYTE(LOWORD(msi->ProcessorRevision)), LOBYTE(LOWORD(msi->ProcessorRevision)));
else else
sprintf(tmp + strlen(tmp), "-%c%d", 'A' + HIWORD(msi->ProcessorRevision), LOWORD(msi->ProcessorRevision)); sprintf(tmp + strlen(tmp), "%c%d", 'A' + HIWORD(msi->ProcessorRevision), LOWORD(msi->ProcessorRevision));
} }
else sprintf(tmp + strlen(tmp), "-%d.%d", HIWORD(msi->ProcessorRevision), LOWORD(msi->ProcessorRevision)); else sprintf(tmp + strlen(tmp), "%d.%d", HIWORD(msi->ProcessorRevision), LOWORD(msi->ProcessorRevision));
str = tmp; str = tmp;
break; break;
case PROCESSOR_ARCHITECTURE_MIPS: case PROCESSOR_ARCHITECTURE_MIPS:
...@@ -286,7 +288,7 @@ void mdmp_dump(void) ...@@ -286,7 +288,7 @@ void mdmp_dump(void)
str = "???"; str = "???";
break; break;
} }
printf(" Processor: %s (#%d CPUs)\n", str, msi->u.s.NumberOfProcessors); printf(" Processor: %s, #%d CPUs)\n", str, msi->u.s.NumberOfProcessors);
switch (msi->MajorVersion) switch (msi->MajorVersion)
{ {
case 3: case 3:
...@@ -324,13 +326,13 @@ void mdmp_dump(void) ...@@ -324,13 +326,13 @@ void mdmp_dump(void)
printf(" Reserved1: %u\n", msi->u1.Reserved1); printf(" Reserved1: %u\n", msi->u1.Reserved1);
if (msi->ProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL) if (msi->ProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL)
{ {
printf(" x86.VendorId: %.12s\n", printf(" x86.VendorId: %.12s\n",
(const char*)&msi->Cpu.X86CpuInfo.VendorId[0]); (const char*)&msi->Cpu.X86CpuInfo.VendorId[0]);
printf(" x86.VersionInformation: %x\n", printf(" x86.VersionInformation: %x\n",
msi->Cpu.X86CpuInfo.VersionInformation); msi->Cpu.X86CpuInfo.VersionInformation);
printf(" x86.FeatureInformation: %x\n", printf(" x86.FeatureInformation: %x\n",
msi->Cpu.X86CpuInfo.FeatureInformation); msi->Cpu.X86CpuInfo.FeatureInformation);
printf(" x86.AMDExtendedCpuFeatures: %u\n", printf(" x86.AMDExtendedCpuFeatures: %x\n",
msi->Cpu.X86CpuInfo.AMDExtendedCpuFeatures); msi->Cpu.X86CpuInfo.AMDExtendedCpuFeatures);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment