Skip to content

GDBUsing

参考

summary

  • 为可执行文件添加调试信息(-g)

  • 进入gdb,file选中文件

  • list加行号显示程序,默认还没运行程序位于文件开头,后面使用l会往后补程序,每次10行;list后面也可以跟函数名;

  • 添加断点break

  • info breakpoints;查看断点,delete跟断点号删除断点,clear,cl后跟函数或者行号。

  • 运行程序r

  • 常用指令next, step, until,continue;

  • print,p打印值

一些违反直觉的事情

next不同于step,它在行为上也是只往下跳转一行,但不进入函数

until会继续运行程序,如果它开始执行的时候本身位于循环尾部(准确来说是,它即将运行进入一个循环),则它会直接运行完这个循环,直到下一个断点。否则它的效果和next相同。

函数声明行本身是不占断点的。函数入口在{所在的位置;

出去main函数之后,通过cotinue来正确结束程序;此时如果键入next或者untilstep可能会有奇怪的报错(具体原因未知)