gdb (lldb)
編譯選項
$ g++ -g <程式名>.cpp -o <程式名>
開始除錯
$ gdb <程式名>
(gdb)
gdb命令
// 顯示程式碼
(gdb) [l]ist <函式>
(gdb) [l]ist <行號>
// 設定斷點
(gdb) [b]reak <函式>
(gdb) [b]reak <行號>
(gdb) info break // lldb: [br]eakpoint [l]ist
(gdb) delete <斷點號> // lldb: [br]eakpoint del[ete] <斷點號>
// 執行程式
(gdb) [r]un // 開始執行
(gdb) [q]uit // 退出
// 單步執行
(gdb) [s]tep // step-in
(gdb) [n]ext // step-over
(gdb) finish // step-out
(gdb) [c]ontinue // 繼續執行到下個斷點
// 列印變數
(gdb) [p]rint <表示式>
// 呼叫棧
(gdb) bt // Show the stack backtrace for the current thread.
(gdb) up // Select the stack frame that called the current stack frame.
(gdb) down // Select the stack frame that is called by the current stack frame.
(gdb) [f]rame <棧號> // Select a different stack frame by index for the current thread.