• Linux基础教程:3、gdb调试工具的使用


    我们在编写完c程序之后出现错误通常会启动调试来查找错误在哪里然后更正,同样,linux也提供了这样的一个工具来帮助我们调试C语言程序,他就是gdb:

    1、调试前面的准备工作

    在我们写好一个程序之后,可以使用cat命令来查看我们的代码:

    cat 文件名

    如果想要一个程序可以让我们调试,我们需要让这个程序具备调试的信息,如果让编译文件具有调试信息呢?

    很简单,只需要在编译的指令后加上一个-g

    gcc 自己编写的C语言文件 -o 输出的可执行文件 -g
    

    比如我这里的:gcc mutifytest.c -o mutify -g

    可以看到这个编译出来的文件还是比较大的,因为里面存在调试信息;

    这是程序编译的结果;

    2、gdb的使用 

    我们使用gdb命令来启动调试:

    gdb 带有调试信息的可执行文件

    在弹出的gdb模式下面我们可以输入下面的常用调试命令来实现我们的调试功能:

    1)、b  行号 : 在行号前面打一个断点(这个行号就是使用l 命令看到的行号);

    2)、r : 开始调试(就是run的意思);

    3)、n : 往下执行,不会进入函数;

    4)、step : 往下执行,一步一步执行,会进入函数;

    5)、l : 显示代码十行,如果重复输入,将会往后显示直至代码结束,这个显示数量可以通过set list进行调整:

    这里我设置为显示5行,然后在使用l显示,注意如果启动了调试后设置失败可以重新进入调试在设置: 

     

    不过需要注意只是当前调试生效,退出之后就无效了;

    6、quit : 可以退出调试

     

    7、display:可以再调试的时候使用,自动打印当前位置的变量值

     

    display 变量值

     8、条件断点

    b if 条件

    条件断点也是非常常用的,我们的以设置在变量满足某种情况的时候打个断点;

    9、i b : 显示当前所有断点的信息;

     这里可以看到我们打的所有断点的信息,包括编号为2的条件断点1 == 4;

     那么这就是gdb调试工具的简单使用;

  • 相关阅读:
    【Redis GEO】1、地理位置类型的基本用法
    Matlab中函数参数验证
    计算机出现msvcr110.dll丢失是什么意思?七种方法解决msvcr110.dll丢失
    Anaconda教程——Ubuntu 平台
    Jenkins
    MATLAB 不同的surface图需要一个统一的colorbar
    OKR与个人成长:生活中的 OKR
    技术干货 | 提速40%,MindSpore 二阶优化器技术解密!
    【TSP问题】基于蜜蜂算法解决旅行商问题附Matlab代码
    java高版本下各种JNDI Bypass方法复现
  • 原文地址:https://blog.csdn.net/aiwanchengxu/article/details/127423220