diff options
Diffstat (limited to 'src/Compositor.cpp')
| -rw-r--r-- | src/Compositor.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 365a2c12..0b4970c2 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -2,6 +2,7 @@ #include "helpers/Splashes.hpp" #include <random> #include "debug/HyprCtl.hpp" +#include "debug/CrashReporter.hpp" #ifdef USES_SYSTEMD #include <systemd/sd-daemon.h> // for sd_notify #endif @@ -16,6 +17,11 @@ int handleCritSignal(int signo, void* data) { return 0; // everything went fine } +void handleSegv(int sig) { + CrashReporter::createAndSaveCrash(); + exit(SIGSEGV); +} + CCompositor::CCompositor() { wlr_log_init(WLR_INFO, NULL); @@ -61,6 +67,7 @@ CCompositor::CCompositor() { // register crit signal handler wl_event_loop_add_signal(m_sWLEventLoop, SIGTERM, handleCritSignal, nullptr); + signal(SIGSEGV, handleSegv); //wl_event_loop_add_signal(m_sWLEventLoop, SIGINT, handleCritSignal, nullptr); m_sWLRBackend = wlr_backend_autocreate(m_sWLDisplay, &m_sWLRSession); |
