当前位置: 首页 > news >正文

Linux:调试器-gdb/cgdb

文章目录

    • 一、编译成debug
        • 1、-g 选项
    • 二、gdb调试命令
        • 1、在CentOS系统下检查安装gdb
        • 2、进入gdb模式
        • 3、quit 退出gdb
        • 4、list (简写 l)显示文件内容
        • 5、b 打断点
        • 6、 r / run运行程序
        • 7、c 让程序直接运行完
    • 三、cgdb
        • 1、info b查看打的所有断点
        • 2、d 删除断点
        • 3、n / next 逐过程
        • 4、s/step 逐语句
    • 四、调试技巧
        • 1、watch 修改时显示
        • 2、 set var 调试时修改值
        • 3、条件断点
        • 4、condition给已存在的断点添加条件

一、编译成debug

Linux 下我们编译好的代码,无法直接调试!
gcc/g++ 默认的工作模式是release模式

1、-g 选项

在编译时加上-g 选项
在这里插入图片描述
-g后生成的.o 文件被链接后的可执行程序占用的空间会变大

查看调试信息:
在这里插入图片描述
-g选项,让最后形成的可执行程序,添加调试信息—debug模式!

二、gdb调试命令

1、在CentOS系统下检查安装gdb

使用gdb --version命令来检查
在这里插入图片描述
显示没有找到,就说明没有安装

使用 sudo yum install gdb 来安装
在这里插入图片描述

2、进入gdb模式

gdb + 链接好的可执行程序文件名:进入gdb模式
在这里插入图片描述

3、quit 退出gdb

quit:退出
在这里插入图片描述

4、list (简写 l)显示文件内容

在这里插入图片描述
指定 行号从指定行号开始显示
在这里插入图片描述
从第1行开始打印内容,然后直接回车把文件内容全部打印出来

5、b 打断点

b 后面跟行好在指定行打断点
在这里插入图片描述

6、 r / run运行程序

在这里插入图片描述
会在断点处停下来

7、c 让程序直接运行完

在这里插入图片描述

三、cgdb

在这里插入图片描述
cgdb跟gdb的使用方法一样,但cgdb更好观察代码,会分屏显示代码
在这里插入图片描述
在这里插入图片描述

1、info b查看打的所有断点

在这里插入图片描述
断点编号 ------ 断点类型---------------------------是否使能----断点地址--------------------------------打的什么断点

2、d 删除断点

删断点只能根据断点编号来删
在这里插入图片描述
gdb不退出断点编号依次递增

3、n / next 逐过程
4、s/step 逐语句

四、调试技巧

1、watch 修改时显示

执⾏时监视⼀个表达式(如变量)的值。如果监视的表达式在程序运⾏期间的值发⽣变化,GDB会暂停程序的执⾏,并通知使⽤者

2、 set var 调试时修改值
3、条件断点

在这里插入图片描述

4、condition给已存在的断点添加条件

在这里插入图片描述

后面跟断点编号

http://www.lryc.cn/news/487116.html

相关文章:

  • 『VUE』30. 生命周期的介绍(详细图文注释)
  • Python 人脸检测:使用 Dlib 和 OpenCV
  • 【大数据学习 | flume】flume的概述与组件的介绍
  • torch.is_storage()
  • 2411rust,编译时自动检查配置
  • 在 Ubuntu 中用 VSCode 配置 C 语言项目的编译与调试(详解教程)
  • MATLAB绘制克莱因瓶
  • HTML5实现趣味飞船捡金币小游戏(附源码)
  • Excel表数学于三角函数、统计函数
  • 小试银河麒麟系统OCR软件
  • Dubbo RPC线程模型
  • 三角波生成函数
  • 使用Python实现对接Hadoop集群(通过Hive)并提供API接口
  • Qt学习笔记(四)多线程
  • java的小数计算如何保证精度不丢失
  • 分布式----Ceph应用(下)
  • 小鹏汽车嵌入式面试题及参考答案
  • qt5半成品飞机大战小游戏
  • 一文速学---红黑树
  • 【graphics】图形绘制 C++
  • 全志科技嵌入式面试题及参考答案
  • html 图片转svg 并使用svg路径来裁剪html元素
  • Wallpaper壁纸制作学习记录01
  • 【深度学习】wsl-ubuntu深度学习基本配置
  • 1000+ 道 Java面试题及答案整理(2024最新版)
  • 【java】抽象类和接口(了解,进阶,到全部掌握)
  • 量化交易系统开发-实时行情自动化交易-4.1.趋势跟踪交易策略
  • 论文解析:基于区块链的计算能力共享系统
  • 【网页设计】CSS3 进阶(动画篇)
  • 性能超越Spark 13.3 倍,比某MPP整体快数十秒 | 多项性能指标数倍于主流开源引擎 | 云器科技发布性能测试报告