0x05_gdb基础
gdb调试工具:前提是有源码,对文件进行编译时增加-g参数。加了这个参数后的编译文件会大一些,是因为增加了gdb的调试内容。
使用时:gdb a.out
。
基本命令:
list n: 列出第n行源码
break n: 在第n行设置断点
run: 运行程序直到断点
next: 下一条指令,会越过函数
step: 下一条指令,会进入函数
print i: 查看变量i的值
continue:继续执行断点后续指令到下一个断点
finish: 结束当前函数调用
quit: 退出当前调试
run: 使用run查找段错误出现的位置,会在错误位置停止。
set args args1 args2 ... : 设置main函数命令行参数(在start、run之前)
run args1 args2 ... : 设置main函数命令行参数
info breaks: 查看断点信息表
break n if i = 5:设置条件断点
ptype i: 查看变量类型
backtrace: 查看函数的调用的栈帧(正存活着的栈帧)
frame n: 根据栈帧编号,切换栈帧
display i: 设置跟踪变量,一直打印变量值
undisplay idx: 取消跟踪变量,使用跟踪变量的编号
使用list时发现报错:没有符号表被读取,是由于编译时没有加-g参数。