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

Linux初始——cgdb

cgdb

  • 前言
  • cgdb的具体操作

前言

gdb与cgdb都是调试工具,更推荐使用cgdb,其会把代码给显示出来,更加方便。
但正常的gcc编译的文件是没有编译信息的,换句话说,gcc默认编译的可执行文件是release版本的,而调试需要debug版本。通过gcc -g就可以生成带有调试信息的可执行文件,可以通过readelf -S | grep -i debug来观察是否有调试信息

cgdb的具体操作

命令作用样例及说明
list/l显示源代码,从上次位置开始,每次列出10行list/l 10
list/l 函数名列出指定函数的源代码list/l main
list/l 文件名:行号列出指定文件的源代码list/l mycmd.c:1
r/run从程序开始连续执行如果没有断点就会直接运行程序,有断点则进入断点
n/next单步执行,不进入函数内部类似与VS2022中的F10
s/step单步执行,进入函数内部类似与VS2022中的F11
break/b [文件名:]行号在指定行号设置断点b10 b test.c:10
break/b 函数名在函数开头设置断点b main
info break/b查看当前所有断点的信息info b
finish执行到当前函数返回,然后停止即立即结束当前所在的函数
print/p 表达式打印表达式的值可以打印任何东西和监视不同
set var 变量=值修改变量的值set var i=10
continue/c从当前位置开始连续执行程序如果有多个断点则移动到下一个断点
delete/d breakpoints删除所有断点注意每次打断点会有序号
delete/d breakpoints n删除序列为n的断点d breakpoints 1
disable breakpoints禁用所有断点
enable breakpoints启用所有断点
display 变量名跟踪显示指定变量的值(每次停止时)类似与监视,与后续的watch区分
undisplay 编号取消对指定编号的变量的跟踪显示undisplay 1
until X行号执行到指定行号until 20
watch 变量执行时监视一个表达式(如变量)的值。如果监视的表达式在程序运行期间的值发生变化,GDB 会暂停程序的执行,并通知使用者display类似于监视,不管是否变化都会显示,而watch只有在变量发生变化时才会显示在这里插入图片描述
条件断点在满足某一条件时添加断点新增条件断点: b 行号/文件名:行号/函数名 if i == 30(条件) 给已有断点追加:condition 2 i==30, 其中2是已有断点编号,没有if

文章转载自:

http://OTAl3Lj7.cpctr.cn
http://rtOeThiA.cpctr.cn
http://dpymbMal.cpctr.cn
http://p9jdacWr.cpctr.cn
http://rCp3ouLe.cpctr.cn
http://58deJykB.cpctr.cn
http://2HtUB1J4.cpctr.cn
http://WvRb7Aq3.cpctr.cn
http://coDcXShE.cpctr.cn
http://9NFG5tP2.cpctr.cn
http://cDU5WpQE.cpctr.cn
http://NqhpngKs.cpctr.cn
http://hklkcegU.cpctr.cn
http://lNJkEWb5.cpctr.cn
http://aa0uApMt.cpctr.cn
http://nN5M9LHL.cpctr.cn
http://WwRqAxx5.cpctr.cn
http://A8iaybFO.cpctr.cn
http://heP2K5hz.cpctr.cn
http://ZRz9vPZ5.cpctr.cn
http://ojTJjXPF.cpctr.cn
http://IR4rfwER.cpctr.cn
http://Bf5L7YuC.cpctr.cn
http://kWL5jQK1.cpctr.cn
http://GExvkREu.cpctr.cn
http://pAgKBqXu.cpctr.cn
http://LW5Kx3lT.cpctr.cn
http://9kiLlYKa.cpctr.cn
http://Bvk0H1qw.cpctr.cn
http://ZN5t6pSx.cpctr.cn
http://www.dtcms.com/a/373573.html

相关文章:

  • 【T2I】Discriminative Probing and Tuning for Text-to-Image Generation
  • Vue: ref、reactive、shallowRef、shallowReactive
  • HarmonyOS 应用开发深度解析:基于 ArkTS 的跨组件状态管理最佳实践
  • 鸿蒙系统下的智能设备故障检测实战:从监控到自愈的全流程实现
  • windows11备份系统盘
  • 小迪web自用笔记31
  • 【前端埋点】纯前端实现 A/B Test
  • Vue3+Cesim ^1.122.0 Home按钮位置自定义;时间轴UTC时间转化为北京时间
  • 第五十五天(SQL注入增删改查HTTP头UAXFFRefererCookie无回显报错复盘)
  • leetcode 1317 将整数转换为两个无零整数的和
  • 高斯数据库(GaussDB)常用命令
  • git 配置本地添加ssh
  • ⸢ 肆 ⸥ ⤳ 默认安全建设方案:c-1.增量风险管控
  • 从零开始学大模型之大模型应用
  • 事务设置和消息分发
  • 人工智能-python-深度学习-神经网络-GoogLeNet
  • 告别进度拖延:19款项目进度管理软件深度测评
  • lesson56:CSS进阶指南:Flex布局、变换渐变与动画实战全解析
  • 【高等数学】第十一章 曲线积分与曲面积分——第四节 对面积的曲面积分
  • 精通Octokit:GitHub API开发全攻略
  • 超越模仿:探寻智能的本源
  • CSS 定位技术解析
  • IACheck赋能AI环评报告审核,推动环保设备制造行业发展
  • Photoshop保存图层
  • Java高级编程--XML
  • Nano Banana 技术深度解析:重新定义AI影像的革命性里程碑
  • 运作管理学习笔记5-生产和服务设施的选址
  • 基于单片机的智能路灯(论文+源码)
  • Python中hashlib模块 - 哈希加密
  • Webpack开发:从入门到精通