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. 栈号>