summaryrefslogtreecommitdiffstats
path: root/synchronizer/main.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-01-18 16:05:18 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-01-18 16:05:18 +0100
commitadfaf8c33ccc3976aa2a0109b7d54b87efdbbfe1 (patch)
tree6a1c364632e1b78c457712db309d354e11598a87 /synchronizer/main.cpp
parent5df6dae529a62e8cf6bf7d9d61a18d88bf8af4db (diff)
downloadsink-adfaf8c33ccc3976aa2a0109b7d54b87efdbbfe1.tar.gz
sink-adfaf8c33ccc3976aa2a0109b7d54b87efdbbfe1.zip
gdb mode that can be used to attach a debugger
Diffstat (limited to 'synchronizer/main.cpp')
-rw-r--r--synchronizer/main.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/synchronizer/main.cpp b/synchronizer/main.cpp
index 7b9165e..b228248 100644
--- a/synchronizer/main.cpp
+++ b/synchronizer/main.cpp
@@ -136,10 +136,16 @@ void terminateHandler()
136 136
137int main(int argc, char *argv[]) 137int main(int argc, char *argv[])
138{ 138{
139 // For crashes 139 const bool gdbDebugMode = qEnvironmentVariableIsSet("SINK_GDB_DEBUG");
140 std::signal(SIGSEGV, crashHandler); 140 if (gdbDebugMode) {
141 std::signal(SIGABRT, crashHandler); 141 SinkWarning() << "Running resource in debug mode and waiting for gdb to attach: gdb attach " << getpid();
142 std::set_terminate(terminateHandler); 142 raise(SIGSTOP);
143 } else {
144 // For crashes
145 std::signal(SIGSEGV, crashHandler);
146 std::signal(SIGABRT, crashHandler);
147 std::set_terminate(terminateHandler);
148 }
143 149
144 QCoreApplication app(argc, argv); 150 QCoreApplication app(argc, argv);
145 app.setQuitLockEnabled(false); 151 app.setQuitLockEnabled(false);