gdb调试

gcc a.c b.c c.c -o app

gcc a.c b.c c.c -o app -g

  -g:会保留函数名和变量名

1:启动gdb  

  gdb 可执行程序的名字

  gdb app

  给程序传参:set args xxxx xxxx

2:查看代码--list

  l:默认main函数的文件,默认10行

  show listsize:修改默认显示行数

  set listsize 20:修改默认显示行数

  l 5:  l 行号 显示第5行的上下

  l main:  l 函数名字,显示main函数的上下

  l main.c:15:  显示main.cpp的上下文

  l main.c:function  显示main.cpp的function函数上下文

3:断点操作-break/b

  设置断点:break/ b 行号/函数名/文件名:行号/文件名:函数名

  查看断点:info/i b

  删除断点:del/d num(断点的编号)(d 2 3 4) ( d 2-4)

  设置断点无效:dis num(无效)  

  断点生效:ena num(有效)

  设置条件断点: b 17 if i==10  (p i 查看i的值)

4:调试相关命令

  start  :运行一行

  run/r :

  p i   :  print i(打印i)

  ptype i :  查看i的类型

  n         :  next 单步(不会进入函数体的内部)

  display i:   每次打印i

  i display:  

  undisplay num: 不输出显示

  c    : continu 继续走

  step    : 进入函数体的内部(单步但是会进入函数内部)

  finish  :退出函数体内部

  set var i=5 : 设置i的值

  until   :跳出当前循环

  q    :  退出

  

作者:长风 Email:844064492@qq.com QQ群:607717453 Git:https://github.com/zhaohu19910409Dz 开源项目:https://github.com/OriginMEK/MEK 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 感谢您的阅读。如果觉得有用的就请各位大神高抬贵手“推荐一下”吧!你的精神支持是博主强大的写作动力。 如果觉得我的博客有意思,欢迎点击首页左上角的“+加关注”按钮关注我!
原文地址:https://www.cnblogs.com/zhaohu/p/8644165.html