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

cgdb的基础使用教程

下载方法

ubuntu的下载方式

sudo apt-get install -y cgdb

centos的下载方式

sudo yum install -y cgdb

编译选项 

程序的发布方式有两种,默认是 debug 模式和 release 模式, Linux gcc/g++ 出来的二进制程 默认的就是release 模式。

但是release模式并不能用来调试,需要编译成debug模式来调试

下面的代码是通过gcc编译成debug版本可执行文件的代码,只需要比平时加上-g选项

gcc -g  -o 源文件 可执行文件

常见的使用方法

 开始调试

cgdb 目标文件

退出:输入quit

1.断点:b 行号

 在第16行的位置打断点

断点也可以通过输入函数名来打断点

此时断点会出现在main函数的第一行代码处

2.运行:r

3.下一步(不进入函数内部):n

4.下一步(进入函数内部):s

5.查看断点信息:info b

6.执行到当前函数返回:finish

7.打印表达式的值:p 表达式

8.打印变量值:p 变量

9.从当前位置开始连续执行代码:c

10.删除所有断点:d

11.删除断点编号:d 断点编号 。只有打断点的时候需要行号,其他时候一律使用断点编号

12.对某个断点进行开启或关闭:dispaly 断点编号

 对一号断点进行关闭

使用info时出现的数据分别是 num:编号   type断点类型  disp断点的显示策略 enb断点是否开启

address断点地址 what断点设置的行号

13.变量数据常显示:display 变量名,之后变量数据就会一直出现在屏幕上

 14.关闭变量数据常显示:undisplay display 变量编号

15.执行到指定行号:until 行号

16.判断变量值发生改变:watch 变量

当发生变化的时候会暂停运行并显示新值与旧值

17.条件断点:b 行号 if 条件

这样断点会在i==10的时候停止运行

18.给已经存在的断点加上条件: condition 断点编号 条件

 

 

http://www.xdnf.cn/news/107281.html

相关文章:

  • 制造业数字化转型标杆解析:从冀凯机电到君乐宝的启示
  • Java类加载器(ClassLoader)及其相关类 简介
  • 【C++】AVL树
  • 《从卷积核到数字解码:CNN 手写数字识别实战解析》
  • 蚊子的搜索距离可达60公里:对一些特殊气味有所偏爱
  • 短说社区V5.2.1正式版发布|修复已知问题
  • 品牌名凭空消失?3步破解亚马逊前台标题隐藏危机
  • 在Linux驱动开发中使用DeepSeek的方法
  • 智能指针(shared_ptr)之二
  • 18487.1-2015-解读笔记五-交流充电之停止充电
  • 详解 synchronized 关键字【通俗易懂】
  • 前端常见问题
  • 西门子S7-200SMART 控制Profinet闭环步进MD-4250-PN (1)电机及专栏介绍
  • 基于百度地图 MCP Server规划规划一次青岛到北京旅行的详细行程实践
  • Vue3集成百度实时语音识别
  • 【Redis】集合类型Set 常用命令详解
  • ZLMediaKit支持JT1078实时音视频
  • 新手村:正则化
  • 系统架构师2025年论文《系统架构风格》
  • Airflow全局异常捕获实现消息通知实践
  • LeetCode-46. 全排列
  • 洛谷P3196C语言题解
  • PHP CURL发送POST请求(支持HEADER参数配置)
  • Kubernetes 集群内访问外部服务的三种实践方案
  • 软件工程的13条“定律”:从Hyrum定律到康威定律,再到Zawinski定律
  • 锤子线,买入准确概率是多少
  • leetcode-数组
  • Retrofit框架分析(二):注解、反射以及动态代理,Retrofit框架动态代理的源码分析
  • bert学习
  • AIGC的伦理困境:机器生成内容是否该被监管?