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参数。