当前位置:   article > 正文

gdb调试命令的三种调试方式和简单命令介绍_gdb attach和gdb launch区别

gdb attach和gdb launch区别
  • 调试可执行文件

    如果需要使用gdb调试程序,请在gcc时加上-g选项。

    调试可执行文件的时候,执行gdb <program>。我们这里生成一个hello的可执行文件,执行命令为gdb hello。

    gdb调试命令的三种调试方式和简单命令介绍

    gdb调试命令的三种调试方式和简单命令介绍

  • gdb也可以调试core文件。

    首先介绍一下core文件的产生,当一个程序在执行的时候出现段错误的时候,但是没有在执行目录生成core文件,这时可以ulimit -c看一下。

    ulimit -c 显示核心转储文件大小的最大值,这里是零:禁止核心转储。

    这时候我们执行ulimit -c unlimited,再来执行一次可执行文件,这时候我们可以看到有core文件产生了。

    gdb调试命令的三种调试方式和简单命令介绍

    gdb调试命令的三种调试方式和简单命令介绍

    gdb调试命令的三种调试方式和简单命令介绍

  • gdb也可以调试运行中的程序,也就是服务程序。

    如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。

    gdb调试命令的三种调试方式和简单命令介绍

  • gdb运行进入调试模式后,可以使用下列的基本命令来进行操作。

    gdb调试命令的三种调试方式和简单命令介绍

  • 这里我们以hello可执行程序调试为例。

    执行gdb hello进入调试模式后,执行r就可以运行该程序了,但是我们通常不会直接这样做,一般在调试的时候我们都是先设置断点,使用b加行号的模式,设置断点后,在执行r,程序就会卡在加入断点的那一行。

    使用命令p加某个变量名,可以查看变量的值、堆栈情况等。

    gdb调试命令的三种调试方式和简单命令介绍

    gdb调试命令的三种调试方式和简单命令介绍

  • 6

    下面是一些经常用到的命令:

    观察变量:(gdb) watch n

     在某一循环处,往往希望能够观察一个变量的变化情况,这时就可以键入命令"watch"来观察变量的变化情况,GDB在"n"设置了观察点。

    单步运行:(gdb) n

    程序继续运行:(gdb) c

    使程序继续往下运行,直到再次遇到断点或程序结束;

    退出GDB:(gdb) q

    END

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/288049
推荐阅读
相关标签
  

闽ICP备14008679号