https://git.reactos.org/?p=reactos.git;a=commitdiff;h=bff6dda91dbccf5c988562...
commit bff6dda91dbccf5c9885626c7cf3f1ee0db77a69 Author: Mark Jansen mark.jansen@reactos.org AuthorDate: Thu Feb 28 23:10:43 2019 +0100 Commit: Mark Jansen mark.jansen@reactos.org CommitDate: Wed Mar 6 23:04:11 2019 +0100
[DRWTSN32] Print some extra exception info --- base/applications/drwtsn32/sysinfo.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/base/applications/drwtsn32/sysinfo.cpp b/base/applications/drwtsn32/sysinfo.cpp index f52c58b2cb..84bc023a53 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<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);