Linux调试器-gdb使用

1. 背景

        程序的发布方式有两种,debug模式和release模式。
        Linux gcc/g++出来的二进制程序,默认是release模式。
        要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项。

2. 开始使用

        调试是一个帮助我们找到问题出现在哪里的过程,而最终解决问题还是需要程序员。

        如果linux上没有gdb调试工具需要安装。 

sudo yum install -y gdb

        开始调试:直接gdb,我们生成的可执行程序就可以开始调试了。

开始调试后只按 l 的话会出现部分行号,如果想要从头开始的话,需要按 l0

         然后一直按 enter 就可以显示全部代码了,enter 可以记住上一个我们的指令。

         ‘r’ 让程序跑起来,需要配合其他的指令来使用。

          在vs下 f9 是打断点 ,在gdb下 b +行号/函数名/文件:行号,就是对该位置打断点。

         查看断点信息 ‘info b’ 

        使当前断点失去功能但是不删除断点。disable ‘断点号’  注意是断点号,而不是行号。从查看断点信息哪里可以知道断点号。

        删除断点 d ‘断点编号’。

        对比vs下的 ‘ f10 ,f11 ’,gdb则是用 n 和 s 来实现逐过程,和逐语句。

      在函数这里打断点,我们 n 或者 s 便可以实现逐过程和逐语句。

        那么如何在程序运行状态下查看各个变量的地址内容和地址呢?display 变量名/变量地址。

常显示变量名和变量地址  undisplay ‘编号’ 取消常显示变量地址和内容。

        主要这个变量生成后才能调用 display !!!!

        c:从一个断点运行到下一个断点(范围查找)。

        finish:将一个函数运行结束,就停下来(范围查找)。

        until:在一个范围内,直接运行到指定行(范围查找)。

        在调试过程中如果想更改变量的内容实现多分支调试怎么办呢?

        首先在调试的语句那里打断点。

        然后 set ‘变量名’ = 我们想要设置的值就好。

        就能实现不用改代码实现多分支调试。


 

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值