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

cgdb 学习笔记(GDB 图形化增强工具)

cgdb 是基于 GDB 的调试工具,通过代码高亮、分栏显示(代码区 + 调试命令区),让 “看代码” 和 “调试操作” 更直观高效。

一、安装(以 Ubuntu 为例)

通过包管理器安装:

bash

sudo apt install cgdb
二、核心调试流程
1. 启动与加载程序
  • 启动 cgdb 并加载可执行程序:cgdb 可执行文件(如 cgdb ./myprogram)。
  • 编译程序时需加 -g 参数(如 gcc -g main.c -o myprogram),生成包含调试信息的可执行文件,才能实现源码级调试。(可以在makefile文件中设置好)
2. 断点管理(调试的 “锚点”)
  • 设置断点
    • 行断点:b 行号(如 break 10,在第 10 行设置断点)。
    • 函数断点:b 函数名(如 break main,在 main 函数入口设置断点)。
  • 查看断点info b,显示所有已设断点的信息(编号、位置、启用状态等)。
  • 删除断点d 断点编号
3. 程序执行控制
  • 启动执行run(或简写 r),从程序开头运行,遇到断点后暂停。
  • 单步执行
    • 逐行执行(不进入函数内部):next(或简写 n)。
    • 逐行执行(进入函数内部):step(或简写 s)。
  • 继续执行continue(或简写 c),从当前暂停位置继续运行,直到遇到下一个断点或程序结束。
  • 执行到函数返回finish(或简写 f),执行当前函数剩余代码,直到函数返回后暂停。
4. 变量与内存查看
  • 查看变量值print 变量名(或简写 p 变量名),如 p i 查看变量 i 的值。
  • 自动显示变量display 变量名,程序每次暂停时,会自动显示该变量的最新值(适合持续关注的变量)。
  • 查看内存x/格式 地址,如 x/10x 0x123456 以十六进制格式,查看从 0x123456 开始的 10 个内存单元。
5. 调试技巧
  • 分栏协作:cgdb 分栏显示 “代码区” 和 “调试命令区”,可在代码区浏览源码结构,在命令区执行调试命令,提升调试效率。
  • 流程化调试:先通过断点定位问题范围,再用 “单步执行 + 变量查看” 逐步分析,遵循 “发现问题 → 分析问题 → 解决问题” 的逻辑。
三、与 gdb 的关系

cgdb 是 gdb 的 前端界面增强版:支持 GDB 几乎所有命令,同时优化了界面交互(代码高亮、分栏),适合需要 “边看代码边调试” 的场景;若习惯纯命令行,也可直接使用 GDB。

http://www.dtcms.com/a/403645.html

相关文章:

  • 广州专门做网站企业网站制作公司排名
  • .h264或.264视频文件转化成mp4视频
  • 【Python】正则表达式
  • Jenkins Pipeline中关于“\”的转义字符
  • 如何与AI有效沟通:描述问题及提示词技巧
  • 网站建设连接数据库我赢职场wordpress
  • TDengine 聚合函数 ELAPSED 用户手册
  • Android音频学习(二十)——高通HAL
  • C#练习题——Lambad表达式的应用
  • Polar WEB(1-20)
  • 湖州做网站公司哪家好温州市网站制作公司
  • NW973NW976美光固态闪存NW982NW987
  • 软件测试 - 接口测试(中篇)
  • 项目进不了index.php,访问public下的html文件可以进去
  • 得力D31系列M2500 M3100 ADNW激光打印机维修手册
  • 信誉好的东莞网站推广从网站验证码谈用户体验
  • Spring Boot中Bean Validation的groups属性深度解析
  • Linux进程(2)
  • C++:String类
  • 金华网站开发杭州自适应网站建设
  • ROS (无人机、机器人)与外部系统对接
  • 苏州市吴江住房和城乡建设局网站书籍网站设计
  • Pytorch工具箱2
  • 物业网站开发wordpress英文博客模板下载
  • 光影(1)
  • iOS 混淆与机器学习模型保护 在移动端保密权重与推理逻辑的实战指南(iOS 混淆、模型加密、ipa 加固)
  • Axios的快速入门
  • 网站建设品牌公司排名网页游戏4399在线游戏
  • 木渎建设局网站哪个网站可以做加工代理的
  • 培训班小程序模板如何一键套用,分享微信小程序的制作方法