【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 断电编号 条件: 将已经存在的断点变成条件断点
相关推荐
淘矿人5 分钟前
2026大模型API中转平台深度评测:weelinking领衔五大服务商横向实测与选型指南
开发语言·人工智能·python·oracle·数据挖掘·php·pygame
瀚高PG实验室6 分钟前
管理工具无法连接数据库,但是navicat可以正常连接
运维·数据库·瀚高数据库
努力的搬砖人.6 分钟前
CentOS 7 系统(内核版本 3.10.0-229.el7.x86_64)无法使用 yum 更新
linux·运维·centos
代码中介商7 分钟前
Linux vi/vim 配置与程序调试完全指南
linux·运维·vim·gbd
tq10867 分钟前
从工具调用到符号思维:持久化Lisp元编程循环中的大语言模型
开发语言·语言模型·lisp
BY组态9 分钟前
《工业4.0时代的智能组态解决方案:打造高效自动化控制系统》
运维·信息可视化·自动化
苦 涩9 分钟前
考研408笔记计算机网络(五)——传输层
笔记·计算机网络·考研408
朱一头zcy10 分钟前
Java基础复习10:Java网络编程入门、Junit单元测试、反射基本介绍、注解基本介绍、XML基本介绍
java·笔记
浪客川10 分钟前
【百例RUST - 015】闭包
开发语言·后端·rust
Acnidouwo12 分钟前
QT程序的dpi导致显示异常处理方法
开发语言·qt