码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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调试工具的简单使用;

  • 相关阅读:
    专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
    vue--2.方法、事件绑定、样式绑定、条件渲染和循环渲染
    【Java集合类】之 HashSet以及底层逻辑分析
    电子商务平台市场动向的数据分析平台:阿里商品指数,包括淘宝采购指数,淘宝供应指数,1688供应指数。
    一名双非程序媛面试蚂蚁、美团、携程等大厂拿offer分享面试过程
    【SpringBoot学习】收藏的学习资料,精!
    SLAM_语义SLAM相关论文
    【大数据】Spark使用大全:下载安装、RDD操作、JAVA编程、SQL
    学会使用ECharts
    【FreeRTOS(六)】队列
  • 原文地址:https://blog.csdn.net/aiwanchengxu/article/details/127423220
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号