GDB 这么好用?
以前,我只有一个时候使用 gdb,那就是-查看程序的汇编代码的时候
我确实是大材小用了,
我以前调试程序都是直接在代码中 print 变量的值,再简单点就是加一个宏,比如
#define DEBUG(info) std::cout << "[INFO] " << info << std::endl;
这时候我的宏的参数都是不加括号的,因为可以这样玩 DEBUG("Point 1: " << var)
在写这个 project 的时候我才真正使用 gdb 调试程序
GDB
- 编译源程序时加上 
-g参数,生成调试信息 - 运行 
gdb your_program命令,进入 gdb 调试环境
这里的your_program是你编译后的可执行文件 - 输入 
break命令,设置断点,程序运行到这里会自动暂停 比如在 启动函数func处设置断点,输入break func
这里的break可以简写成b - 输入 
run命令运行程序,程序会在 gdb 调试环境中运行
这里的run可以简写成r - 输入 
next命令,单步执行程序,遇到断点会自动暂停 这里的next可以简写成n - 输入 
continue命令,继续运行程序,遇到断点会自动暂停
这里的continue可以简写成c - 输入 
print命令,查看变量的值
这里的print可以简写成p - 输入 
backtrace命令,查看函数调用栈
这里的backtrace可以简写成bt - 输入 
quit命令,退出 gdb 调试环境
这里的quit可以简写成q