X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bf614597c93e12e267a18928da300ac2760d4bfe..7e5b66316f891fd526991891196308f098ceece9:/main/bsod.cpp diff --git a/main/bsod.cpp b/main/bsod.cpp index d0d2ec7e..938ddd2b 100644 --- a/main/bsod.cpp +++ b/main/bsod.cpp @@ -143,10 +143,27 @@ void bsodFatal() void oops(const mcontext_t &context, int dumpcode) { eDebug("PC: %08lx, vaddr: %08lx", (unsigned long)context.pc, (unsigned long)context.badvaddr); + int i; + for (i=0; i<32; ++i) + { + eDebugNoNewLine(" %08x", (int)context.gregs[i]); + if ((i&3) == 3) + eDebug(""); + } + /* this is temporary debug stuff. */ + if (dumpcode && ((unsigned long)context.pc) > 0x10000) /* not a zero pointer */ + { + eDebug("As a final action, i will try to dump a bit of code."); + eDebug("I just hope that this won't crash."); + int i; + eDebugNoNewLine("%08lx:", (unsigned long)context.pc); + for (i=0; i<0x20; ++i) + eDebugNoNewLine(" %02x", ((unsigned char*)context.pc)[i]); + eDebug(" (end)"); + } } #else #warning "no oops support!" -#error bla #define NO_OOPS_SUPPORT #endif