gdb (lldb)

一͛世͛珍͛藏͛發表於2019-05-14

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.

相關文章