This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
gdb [2017/10/24 17:22] dblume |
gdb [2021/05/21 00:04] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== gdb ====== | ====== gdb ====== | ||
| + | |||
| + | ===== Example code with a deadlock ===== | ||
| + | |||
| + | Build your target with debug symbols. For example, with [[http:// | ||
| + | |||
| + | make debug | ||
| + | |||
| + | If the deadlock was compiled in, then run it like so: | ||
| + | |||
| + | product/ | ||
| + | |||
| + | Then you can run gdb and attach to the process in one of the following ways. | ||
| + | |||
| + | $ gdb -p < | ||
| + | | ||
| + | $ gdb product/ | ||
| + | | ||
| + | $ gdb | ||
| + | (gdb) attach < | ||
| + | | ||
| + | |||
| + | ===== Tips ===== | ||
| Show all the backtraces: | Show all the backtraces: | ||
| Line 12: | Line 34: | ||
| (gdb) t a a bt -3 # thread apply all backtrace top three frames | (gdb) t a a bt -3 # thread apply all backtrace top three frames | ||
| - | ==== Detecting a Deadlock ==== | + | ===== Detecting a Deadlock |
| Get high level info on the threads: | Get high level info on the threads: | ||