目录
gdb--调试器
引入
- 程序有两种发布方式,dubug和release
- 在linux中,默认gcc/g++编译出的二进制程序是release模式
- 如果要变成dubug模式,需要在编译时加上-g选项
- 而gdb是linux用于在debug版本下的调试工具
命令
进入/退出gdb
gdb + 文件名
进入gdb
Ctrl+d / quit
退出
查看代码/变量/其他信息
list/l(可以缩写)
默认打印前10行
但有时候打印的内容可能不是我们想象中的那样(汗) ,gdb可能会自己做一些"优化"
print / p
打印表达式/变量的值,只是当前状态下的值
display
跟踪查看一个变量,每次停下来都显示它的值![]()
undisplay
取消对先前设置的那些变量的跟踪
breaktrace
查看各级函数调用及参数![]()
info / i + locals
查看当前栈帧局部变量的值![]()
执行
run / r
运行程序,会在断点处停下
next / n
单步执行
step / s
进入调用的函数内部
如果使用n,则不会进入调用的函数
当即将进入函数时,输入s即可进入函数
continue
从当前位置开始连续而非单步执行程序遇到断点停下,否则直接执行到程序结束
finish
执行到当前函数返回的位置(当前位置得在该函数内部),然后停下来等待命令![]()
![]()
until + 行号
跳至该行![]()
断点
break / b + 行号/函数名
在某一行/函数开头设置断点
info / i b / breakpoints
查看断点信息
delete / d breakpoints(+ 序号)
删除断点
disable breakpoints
禁用断点
该断点还在,但enb(也就是状态被设置为禁用状态:n)
enable breakpoints
启用断点
修改
set var + 变量赋值语句
修改变量的值