gdb_setting

$HOME/.gdbinit 中打開 global history

set history save on
set history size 4096
set history filename ~/.gdb_history

1. 我上面的 .gdbinit 片段會打開類似 ipython 的 global history 功能。gdb 開開關關,history 還是在。

2. 抓stack trace 查 runtime behavior 確實很有用。唯一要小心的是 optimize 後機械碼長的跟 source code 可以差很多。(例. 同檔案內的 static function 有時會被『部份 inline』進其他 function body 內)

3. conditional breakpoint 與 breakpoint commands 讓你能將 gdb 當 programmable debugger 用。理論上 gdb 的 Python API 比 gdb script 更容易 program 才對,但它的 API design 有些瑕疵。有些有用的功能也還沒暴露給 Python。

4. 即使跟 ipython 而不是 visual studio 的 debugger 比,gdb 其實也是個 usability 很糟的 Read-Evaluate-Print-Loop。有些是語法設計的問題。

handle SIGPIPE nostop noprint
handle SIG32 nostop noprint
handle SIG33 nostop noprint
handle SIG63 nostop noprint

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License