• Linux调试器:gdb的使用


    我们知道在Visual Studio2022中,我们可以对编好的代码进行调试来分析dug的位置,那Linux环境下如何进行程序的调试呢?那就是使用Linux调试器:gdb。

    目录

    1.背景

    2. 开始使用


    1.背景

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

    Makefile的用法可以看我之前的文章,这里知道gcc编译时加 -g 选项即可。

    release版本比debug版本的可执行程序所占空间要小,因为debug模式下要在文件内保存相关的调试信息,大家可以自己生成两个版本的文件比较一下。

    2. 开始使用

     我们先写一个可以1到100的累加mycode.c源文件,把它以debug模式编译。

     下面命令中要注意命令中间的空格!

    进入gdb调试:gdb 可执行文件名称

    gdb 退出: ctrl + d 或 quit (q)调试命令:

    • list/l   行号:显示 mycode.c 源代码,接着上次的位置往下列,每次列10行。

    • list/l   函数名:列出某个函数的源代码。
    • r或run:运行程序。开始调试,如果没有断点会直接执行完整个程序。
    • n 或 next:单条执行。遇到函数不会进入。
    • s或step:进入函数调用。会进入函数。
    • break(b)   行号:在某一行设置断点
    • break(b)   函数名:在某个函数开头设置断点
    • info   break(b) :查看断点信息。

    • finish:执行到当前函数返回,然后停下来等待命令(即执行完整个函数)
    • print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数
    • p   变量:打印变量值。
    • set   var:修改调试中变量的值
    • continue(或c):从当前位置开始连续而非单步执行程序,执行到下一个断点。
    • run(或r):从开始连续而非单步执行程序
    • delete  breakpoints:删除所有断点
    • delete breakpoints n:删除序号为n的断点
    • disable breakpoints:禁用断点,
    • enable breakpoints:启用断点

    • info(或i)  breakpoints(b):参看当前设置了哪些断点
    • display  变量名:跟踪查看一个变量,每次停下来都显示它的值
    • undisplay:取消对先前设置的那些变量的跟踪

    • until X行号:执行到X行停下来,但是中间有断点也会停下来。
    • breaktrace(或bt):查看各级函数调用及参数,就是vs下的调用堆栈。
    • info(i) locals:查看当前栈帧局部变量的值,不用自己输入。
    • quit:退出gdb

    本篇结束!

  • 相关阅读:
    用户体验设计笔记(1-1)
    【LeetCode-中等题】47. 全排列 II
    2024级199管理类联考之英语二2200核心词汇(第三天)
    货币数字转换千分位,使用过滤器属性filters实现
    计算机毕业设计Java晶研电子公司业务网站(源码+mysql数据库+系统+lw文档)
    VUE day_10(7.28)Vue3学子项目详细版
    ANSYS ICEM常用操作
    Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
    数据库表的字符集编码报错问题
    C专家编程 第1章 C:穿越时空的迷雾 1.11 轻松一下---由编译器定义的Pragmas效果
  • 原文地址:https://blog.csdn.net/qq_72916130/article/details/134491158