【Linux】Linux调试器-gdb使用

目录

        一、背景

        二、开始使用


一、背景

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

    我们在vim上面编写完代码,可能会出现一些问题,造成编译不通过,此时我们就能借助gdb来调试代码,进而解决问题。

    演示如下:

 

上图就可以看出已经进入调试。 

注意:要是在release版本下,是无法进行gdb调试的。 

二、开始使用

  • l 行号:显示 test 源码,接着上次的位置往下列,每次列10行。

  • r :运行程序。

 

因为我们之前没有设置断点,所以直接就能运行到结尾。

  • n:单条执行(就相当于我们在VS调试下的F10)。
  • s:进入函数调用(就相当于我们在VS调试下的F11)。

注意:需要结合断点来执行上面的命令。 

  •  b  行号:是在某一行的位置设置断点。

   假设在13行处设置断点 ,演示如下:

 

   然后运行一下程序就到断点处停下:

   此时,在执行一下s 的命令,就进入了函数内部,演示如下:

  •  c:跳到下一个断点处

假设在第15行再设置一个断点时,执行c 命令,演示如下:

 

  • info  b:查看当前设置的断点信息
  • disable 断点编号:关闭断点
  • enable 断点编号:打开断点

 

    表示已经在第13行和第15行设置了断点。其中Enb : 表示的是断点是否被启用,y是启用状态,n是禁用状态(可以被忽略)。

  • d :删除所有断点;
  • d n:删除序号为n的断点。

演示如下:

 

  •  p 变量:打印变量值;
  • set var:修改变量值

演示如下: 

注意: 要在程序运行的时候,才能显示a和b变量的值,同样也可以设置变量的值。

  •  until X行号:调至X行

演示如下:

 

注意:要在程序运行的时候才能跳至下一位置。 

  • q:退出gdb 调试。 

 


本文要是有不足的地方,欢迎大家在下面评论,我会在第一时间更正。

  老铁们,记着点赞加关注!!! 

猜你喜欢

转载自blog.csdn.net/m0_63198468/article/details/130655606