From: Mark Jansen Date: Thu, 28 Feb 2019 22:10:43 +0000 (+0100) Subject: [DRWTSN32] Print some extra exception info X-Git-Tag: 0.4.13-dev~268 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=bff6dda91dbccf5c9885626c7cf3f1ee0db77a69 [DRWTSN32] Print some extra exception info --- diff --git a/base/applications/drwtsn32/sysinfo.cpp b/base/applications/drwtsn32/sysinfo.cpp index f52c58b2cb8..84bc023a538 100644 --- a/base/applications/drwtsn32/sysinfo.cpp +++ b/base/applications/drwtsn32/sysinfo.cpp @@ -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(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);