首先,先准备好代码,我以快排为例:
把head.h,main.cpp,quicksort.cpp准备好。
开始编译,生成可执行文件。注意,如果要进行gdb调试,必须加 -g
g++ *.cpp -o myapp -g
gdb myapp
gdb调试:
1. 启动gdb
start -- 只执行一步
n -- 相当于step over
s -- 相当于step into -- 可以进入到函数体内部
c 等价 continue -- 直接停在断点的位置
2. 查看代码:
l 等价 list
l 行号(或函数名)
l 文件名:行号(或函数名)
3. 设置断点:
设置当前文件断点:
b 等价 break
b 行号(或函数名)
设置指定文件断点:
b 文件名:行号(或函数名)
设置条件断点:
b 10 if i==19
删除断点:
delete 等价 del 等价 d
d 断点的编号
获取编号: info 等价 i
info b
4. 查看设置的断点
5. 开始 执行gdb调试
执行一步操作: start
继续执行:n或s
执行多步, 直接停在断点处:continue
5. 单步调试
进入函数体内部: s
从函数体内部跳出: finish --注意,如果断点打在函数内的循环体中,此时执行finish会报错,必须先删除该断点
不进入函数体内部:n
退出当前循环: u
6. 查看变量的值: p 等价 print
7. 查看变量的类型: ptype 变量名
8. 手动设置变量的值(加快程序的执行速度): set var 变量名 = 赋值
9. 设置追踪变量
display 变量名
取消追踪变量
undisplay 编号
获取编号: info display
10. 退出gdb调试
quit