1.程序的两种版本
我们在Linux下使用gcc/g++编译出来的程序在默认情况下release版本,要想调试则需要生成debug版本才能使用gdb调试。(命令格式如下:加上-g则表示生成debug版本)
gcc -o 你想要生成的可执行文件的名字 你编写的代码文件 -g
2.gdb的使用
- list / l 行号 : 查看可执行文件内的代码,从上往下列10行(该行号往上数4行往下数5行加上自己10行)如果需要查看完整代码直接l 0 然后按回车键即可。
- list / l 函数名 : 列出该函数名的源代码
- r / run : 开始调试,运行程序直到碰到断点,如果没有断点则运行至程序结束(如果要运行到写一个断点需要使用c)
- n / next : 逐过程执行,函数调用也是一个过程,所以不会进入函数内部
- s / step : 逐步执行, 要想进入函数内部则使用这一个指令
- b / break 行号 (函数名) : 在该行(函数)打上断点
- info b / break(这里b或者break都可以) : 查看设置的断点的信息
- d 断点编号 : 断点编号要使用info break 查看
- finish : 执行到函数返回的位置
- p / print 变量名: 打印变量的值
- display 变量名: 设置一直需要查看的变量
- display 编号: 取消设置一直需要查看的变量(编号在常显示变量的旁边)
- until 行号: 跳转到指定行(通常用于同一个函数内局部的跳转)
- c : 运行至下一个断点
- disable/able 断点编号: 关闭和打开断点,不是简单地删除。