当前位置: 首页 > 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 断点编号 条件

 

 

相关文章:

  • 夏季跑步注意
  • 数据库--页(page)
  • UniOcc:自动驾驶占用预测和预报的统一基准
  • CPP_类和对象
  • 智能外呼系统的技术演进与多场景落地实践
  • 【k8s】LVS/IPVS的三种模式:NAT、DR、TUN
  • NOIP2009提高组.Hankson的趣味题
  • Spring JDBC 的开发步骤(非注解方式)
  • SpringBoot入门实战(第七篇:项目接口-商品管理)
  • Ubuntu启动SMB(Samba)服务步骤
  • pytest心得体会
  • vue2+Vant 定制主题
  • 第二章:ForgeAgent Core
  • 极狐GitLab 的合并请求部件能干什么?
  • 【C语言】C语言中的字符函数和字符串函数全解析
  • COMSOL多孔结构传热模拟
  • VTK-8.2.0源码编译(Cmake+VS2022+Qt5.12.12)
  • 零跑B01上海车展全球首秀,定义纯电轿车新基准
  • 3D模型格式转换工具HOOPS Exchange 2025.3.0更新:iOS实现Rhino格式支持!
  • CS144 Lab3 实战记录:TCP 发送器实现
  • 近七成科创板公司2024年营收增长,285家营收创历史新高
  • 十四届全国人大常委会第十五次会议在京闭幕
  • 北京银行一季度净赚超76亿降逾2%,不良贷款率微降
  • 15世纪以来中国文化如何向欧洲传播?《东学西传文献集成初编》发布
  • 鄂湘赣“中三角”,能否走向文旅C位?
  • 体坛联播|安切洛蒂预计执教巴西国家队,利拉德确诊跟腱撕裂