gdb调试

亡梦爱人 提交于 2020-01-09 01:06:05

编译时加入 -gdwarf -2 -g3 -O0 可以查看宏定义macro expand ***


 Ctrl + C 命令中断下来后  c继续
break
break functionname,在函数名为 functionname 的入口处添加一个断点;//b main
break LineNo,在当前文件行号为 LineNo 处添加一个断点;// b 452
break filename:LineNo,在 filename 文件行号为 LineNo 处添加一个断点。//b anet.c:441

bt:查看堆栈
f *:切换堆栈

info break:查看断点 //info b
disable *//禁用某个断点
enable * //启动某个断点 
如果没有加上*时,则是禁用或启动全部的断点 
delete 编号  为删除某个断点

list : 查看当前断点处的代码 
l +
l - 
回车:重复

打印 
p *:查看值 
P &*:查看值地址
p *=*:给值

ptype *:查看数据结构
info args:查看当前函数参数的值

线程
查看线程 info thread
切换线程 thread 2 
查看当前函数的参数值:info args

控制流命令
next: n跳到下一步不会进入函数体.
step: s遇到函数进入函数内部
return:在当前位置返回.
finish:执行函数到ghip退出
until: u可以指定程序运行到某一行停下来
jump: j从当前位置直接跳转到

set args:设置 args
show args:显示 
设置传入的参数在r之前
tbreak main:设置一次性的断点 
watch:用来监视一个变量或者一段内存.
display 命令监视的变量或者内存地址,每次程序中断下来都会自动输出这些变量或内存的值。例如,假设程序有一些全局变量,每

ffmpeg -rtmp_app live -i rtmp: -c copy -f flv output.flv

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!