[DRWTSN32] Print some extra exception info

This commit is contained in:
Mark Jansen 2019-02-28 23:10:43 +01:00
parent 8a4c5763da
commit bff6dda91d
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B

View file

@ -59,8 +59,20 @@ void PrintSystemInfo(FILE* output, DumpData& data)
xfprintf(output, " When: %d/%d/%d @ %02d:%02d:%02d.%d" NEWLINE,
LocalTime.wDay, LocalTime.wMonth, LocalTime.wYear,
LocalTime.wHour, LocalTime.wMinute, LocalTime.wSecond, LocalTime.wMilliseconds);
DWORD ExceptionCode = data.ExceptionInfo.ExceptionRecord.ExceptionCode;
xfprintf(output, " Exception number: 0x%8x (%s)" NEWLINE, ExceptionCode, Exception2Str(ExceptionCode));
xfprintf(output, " First chance: %u" NEWLINE, data.ExceptionInfo.dwFirstChance);
EXCEPTION_RECORD& Record = data.ExceptionInfo.ExceptionRecord;
xfprintf(output, " Exception number: 0x%08x (%s)" NEWLINE, Record.ExceptionCode, Exception2Str(Record.ExceptionCode));
xfprintf(output, " Exception flags: 0x%08x" NEWLINE, Record.ExceptionFlags);
xfprintf(output, " Exception address: %p" NEWLINE, Record.ExceptionAddress);
if (Record.NumberParameters)
{
xfprintf(output, " Exception parameters: %u" NEWLINE, Record.NumberParameters);
for (DWORD n = 0; n < std::min<DWORD>(EXCEPTION_MAXIMUM_PARAMETERS, Record.NumberParameters); ++n)
{
xfprintf(output, " Parameter %u: 0x%p" NEWLINE, n, Record.ExceptionInformation[n]);
}
}
char Buffer[MAX_PATH];
DWORD count = sizeof(Buffer);