X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d452521070295fc71477c72f47456f07184ea751..e48e67ced346bf110740ac1051a9a0e240fdbc56:/main/bsod.cpp diff --git a/main/bsod.cpp b/main/bsod.cpp index f08c6f34..3352a29e 100644 --- a/main/bsod.cpp +++ b/main/bsod.cpp @@ -6,6 +6,9 @@ #include #include #include +#ifdef WITH_SDL +#include +#endif #include "version.h" @@ -86,10 +89,19 @@ void bsodFatal() std::string buffer = getLogBuffer(); fwrite(buffer.c_str(), buffer.size(), 1, f); fclose(f); + + char cmd[256]; + sprintf(cmd, "find /usr/lib/enigma2/python/ -name \"*.py\" | xargs md5sum >> %s", logfile); + system(cmd); } +#ifdef WITH_SDL + ePtr my_dc; + gSDLDC::getInstance(my_dc); +#else ePtr my_dc; gFBDC::getInstance(my_dc); +#endif { gPainter p(my_dc); @@ -132,7 +144,6 @@ void bsodFatal() p.renderText(usable_area, lines.substr(start), gPainter::RT_HALIGN_LEFT); - p.flush(); sleep(10); } @@ -164,7 +175,6 @@ void oops(const mcontext_t &context, int dumpcode) } #else #warning "no oops support!" -#error bla #define NO_OOPS_SUPPORT #endif @@ -173,7 +183,7 @@ void handleFatalSignal(int signum, siginfo_t *si, void *ctx) ucontext_t *uc = (ucontext_t*)ctx; eDebug("KILLED BY signal %d", signum); #ifndef NO_OOPS_SUPPORT - oops(uc->uc_mcontext, signum == SIGSEGV); + oops(uc->uc_mcontext, signum == SIGSEGV || signum == SIGABRT); #endif eDebug("-------"); bsodFatal(); @@ -192,6 +202,7 @@ void bsodCatchSignals() sigaction(SIGSEGV, &act, 0); sigaction(SIGILL, &act, 0); sigaction(SIGBUS, &act, 0); + sigaction(SIGABRT, &act, 0); } void bsodLogInit()