gdb调试
编译时必须加-g选项,如果想去掉符号表strip a.out
gdb ./a.out
ulimit -c unlimited可以生成core文件
调试core文件 gdb a.out core.111
运行
r(run) 开始运行
r argv[1] argv[2]//命令行参数
c(continue):继续执行到下一断点
n(next):单步调试,不进函数
s(step):进入函数
断点
b n
b func 在函数入口处设置断点,注意函数名后面不能加括号
delete n 删除第几个断点
info b 查看断点情况
delete breakpoints 清楚所有断点
查看源代码:
list 每次10行
l func 显示函数名源代码
l 行号 以行号为中心前后10行代码
打印:
p a 打印整数a
display a 单步时每次都打印a的值
watch a a的值改变了就停止
bt 显示当前堆栈
ctrl+L :刷新窗口
交互模式下直接回车的作用是重复上一指令
ctrl+c在gdb中不会退出,可以暂停进程,然后打断点。