Linux调试器--gdb的使用


 先罗列一下需要掌握的如下:

  • list/l 行号:显示binFile源代码;l 1 从第一行开始显示,每次显示10行
  • list/l 函数名:列出某个函数的源代码
  • run/r:运行程序
  • next/n:单条执行
  • step/s:进入函数调用
  • break/b 行号:在某一行设置断点
  • break 函数名:在某个函数开题设置断点
  • delete breakpoint/b n :删除序号为n的断点
  • info b查看当前设置了哪些断点
  • display 变量名 :跟踪查看一个变量,每次停下来都显示它的值
  • undisplay 编号:取消对变量的跟踪

 本文就linux下如何调试程序,gdb调试程序都有哪些指令做出回答。
 环境:VS2013,centos7

如果一个程序可以被调试,该程序的二进制一定加入了一些debug信息以vs为例
在这里插入图片描述
 同样道理,Liux可以被调试应该加入(centos默认releasem模式)

0.0 生成有调试信息的文件(gcc test.c -o test -g)

gcc test.c -o test -g

 可以看到,加入调试信息后,文档变大
在这里插入图片描述
首先编写如下test.c
在这里插入图片描述

1.0 进入调试        gdb test

gdb test

调试步骤

先调出行号---->打断点---->运行

2.0 显示行号,便于打断点   list/l 行号

显示binFile源代码,接着上次的位置往下列,每次列10行

l 1  //从第一行开始显示,显示10行

在这里插入图片描述
##3.0 打断点 break(b) 行号
b 行号:在某一行设置断点
在这里插入图片描述
1号断点在0x10056a断点处,文件是在file test.c 第16行

查看当前的断点情况(有几个断点,当前)

info  b

在这里插入图片描述
Enb y 显示是启用当前断点
在这里插入图片描述

4.0运行            r

在这里插入图片描述
mian函数的16行停下来了

5.0 逐过程F10 n 逐语句F11 s

      n 或 next:单条执行                                  s或step:进入函数调用

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.0 调窗口监视        display 变量名

display 变量名:跟踪查看一个变量,每次停下来都显示它的值
程序监测了sum和i 的值,每走一次就会显示一次。关闭用display ,关闭时,格式: undisplay 编号

取消sum undisplay 8
undisplay 8 9
在这里插入图片描述
如果只想显示一次;p 变量:打印变量值。

7.0 提前结束循环       finish

finish:执行到当前函数返回,然后停下来等待命令
在这里插入图片描述

8.0 continue和finish

两个断点,16行和18行

contiue 从一个函数断点跑到下一个断点或者程序执行结束

在这里插入图片描述

finish直接把当前所在的循环函数跑完,并得到返回值
在这里插入图片描述

finish vs continue
结束当前函数 直接到达下一个对应的断点
until X行号:跳至X行

打断点 查看断点 删除断点
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值