gdb调试的使用
gdb基础使用:
如果需要使用gdb,在gcc的时候需要-g选项,不加无法调试。help 查看命令帮助
list 看代码
list 行号
l
list 函数名
run 运行
start 进行单步调试
step 跳进函数里 逐语句
next 下一步 逐过程
finish 结束一个函数,返回函数调用的位置
print 变量 打印变量
quit 退出
backtrace 查看函数调用信息 bt
直接敲回车 是重复上一条命令
info locals 查看局部变量信息
break 设置断点 b
info breakpoints 查看设置的断点
delete 删除断点
delete breakpoints NUM(断点数)
conutine 直接运行到下一个断点的位置
display 每次都看这个变量信息 监视
查看内存命令 x
x /4x 地址 /4表示显示几个 x十六进制
o(octal),
x(hex),
d(decimal),
u(unsigned decimal),
t(binary),
f(float),
a(address),
i(instruction),
c(char)
s(string).
b(byte),
一个字节h(halfword),
两个字节 形式读取值w(word),
四个字节g(giant, 8 bytes).
八个字节
段错误:
r 就是 run 直接到段错误
死后验尸:
ulimit -a 查看core文件大小
设置大小并开启
ulimit -c 1024
然后死了就生成core文件
gdb a.out core