【Linux】09.Linux 下的调试器——gdb/cgdb

一、gdb/cgdb的认识

我们在VS上调试时都是使用Debug版本的,但是在Linux下gcc/g++默认生成的是Relaese版本,我们想要进行调试就要用-g选项生成Debug版本的程序。但是Linux下的gdb是一种命令行调试工具,因此就有了cgdb为我们提供可视化的调试界面。

二、gdb的基本命令

  • 进入gdb/cgdb: gdb/cgdb 文件名
  • 退出gdb/cgdb: quit
  • l: 显示代码
    • l 行号: 显示从给定行开始的10行内容
    • l 函数名: 显示给定函数的10行内容
    • l 文件: 行号 显示给定文件对应行号开始的10行内容
  • r: 运行代码 相当于VS中的F5
  • b 行号: 给定行号处打断点
  • d 断点编号: 删除断点编号对应的断点
  • info b: 显示断点信息
  • disable: 关闭断点
  • enable: 开启断点
  • n: 单步执行(逐过程)相当于VS中的F10
  • s: 单步执行(逐语句)相当于VS中的F11
  • bt: 查看堆栈调用
  • dispaly 变量名: 常显示变量的值
  • undisplay 变量名: 去掉变量的常显示
  • p 变量: 打印变量的值
  • until 行号: 跳转到指定行
  • c: 跳转到下一处断点
  • finish: 结束某一函数,并显示返回值
  • watch 变量名: 监视某一变量,变得时候会有显示
  • set var 表达式: 修改变量值,方便我们的验证
  • 条件断点:
    • b 行号 if 执行的条件: 创建新的条件断点
    • condition 断电编号 条件: 将已经存在的断点变成条件断点
相关推荐
Scott9999HH4 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
Yana.nice4 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
码智社5 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海5 小时前
python 列表、元组、集合和字典
开发语言·python
克里斯蒂亚诺更新5 小时前
ruoyi角色权限的对应关系
笔记
萧瑟余晖6 小时前
JDK 26 新特性详解
java·开发语言
马优晨6 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
2601_960567967 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
a1117767 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
吳所畏惧8 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh