]> granicus.if.org Git - icinga2/commitdiff
Update debug docs for core dumps and full backtraces
authorMichael Friedrich <michael.friedrich@netways.de>
Mon, 14 Sep 2015 19:35:56 +0000 (21:35 +0200)
committerMichael Friedrich <michael.friedrich@netways.de>
Thu, 17 Sep 2015 14:44:42 +0000 (16:44 +0200)
fixes #10142

doc/21-debug.md

index 90ca0c6cb8e87f7e7b3012421c6c11cf5fdea25c..8c907307f6151a695c72d7b18dc7d5005b9ceb89 100644 (file)
@@ -114,8 +114,9 @@ the duplicate import in your `~/.gdbinit` file.
 ### <a id="development-debug-gdb-run"></a> GDB Run
 
 Call GDB with the binary and all arguments and run it in foreground.
+If VFork causes trouble disable it inside the gdb run.
 
-    # gdb --args /usr/sbin/icinga2 daemon -x debug
+    # gdb --args /usr/sbin/icinga2 daemon -x debug -DUseVfork=0
 
 > **Note**
 >
@@ -134,6 +135,14 @@ Continue after breakpoint.
 
     (gdb) c
 
+### <a id="development-debug-gdb-coredump"></a> GDB Core Dump
+
+Either attach to the running process using `gdb -p PID` or start
+a new gdb run.
+
+    (gdb) r
+    (gdb) generate-core-file
+
 ### <a id="development-debug-gdb-backtrace"></a> GDB Backtrace
 
 If Icinga 2 aborted its operation abnormally, generate a backtrace.
@@ -141,11 +150,13 @@ If Icinga 2 aborted its operation abnormally, generate a backtrace.
     (gdb) bt
     (gdb) bt full
 
->**Tip**
->
-> If you're opening an issue at [https://dev.icinga.org] make sure
-> to attach as much detail as possible.
+Generate a full backtrace for all threads and store it into a new file
+(e.g. for debugging dead locks):
+
+    # gdb -p PID -batch -ex "thread apply all bt full" -ex "detach" -ex "q" > gdb_bt.log
 
+If you're opening an issue at [https://dev.icinga.org] make sure
+to attach as much detail as possible.
 
 ### <a id="development-debug-gdb-backtrace-stepping"></a> GDB Backtrace Stepping