因为一般都是在linux命令行下直接编译代码,已经不太使用ide了,所以gdb这个调试神器也应该学习一下。 (一直用fprintf也实现显示不出专业性^_^)
gdb调试其实就相当于另开了一个shell,在其中你可以输入各种命令来对程序进行操作。
基础命令
- run
缩写为 r ,表示执行程序(如果程序已经在执行了,则重新开始执行程序)。 - continue
缩写为 c ,表示程序执行到下一个断点处停止。 - break
缩写为 b ,设置断点。
用法:- b [行号] -> b 12
- b [函数名] -> b compute
- b [条件] -> b 7 if i==99
- info
查看信息,用法为info [name] -> info b 表示查看断点信息。 - step
缩写为 s ,表步进,如果当前执行的为函数,则进入函数内部。 - next
缩写为 n ,单步执行,不会进入函数。 - clear
用法:- clear 删除所有断点
- clear [行号] 删除该行断点
- clear [函数名] 删除该函数处断点
- quit
退出gdb调试
进阶命令
- watch
watch也是设置断点的一种方式,它可以跟踪变量,非常方便。(注意改变量在当前行应已被定义) 如watch i == 1
,那么当i=1
时程序就会自动停下。