【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 断电编号 条件: 将已经存在的断点变成条件断点
相关推荐
AOI小白新手上路4 分钟前
韦东山 3-5 I.MX6ULL 的 LED 编程 · 学习笔记
arm开发·笔记·单片机·学习·架构·硬件架构
Elastic 中国社区官方博客4 分钟前
使用 Jev 作为 search reranker:基准测试与实现方法
大数据·运维·elasticsearch·全文检索
知识分享小能手6 分钟前
C++ 学习教程,从入门到精通,C++类继承 — 完整知识点详解(13)
开发语言·c++·学习
YYRAN_ZZU7 分钟前
如何编一个gcc的交叉工具链
linux·c++
弹简特10 分钟前
【Java项目-企悦抽】15-活动管理模块02-活动创建测试与活动列表实现
java·开发语言·springboot
shjita20 分钟前
centos中安装docker
linux·docker·centos
红红谈说36 分钟前
浏览器自动化环境老是起不来?依赖治理与启动自检的一次复盘
运维·自动化·浏览器自动化·进程残留·环境依赖·启动自检·版本比较
程序猿老A39 分钟前
阿里云linux服务器安装mysql并实现远程访问
linux·服务器·阿里云
wuminyu44 分钟前
JVM虚拟线程的底层实现原理分析
java·linux·c语言·jvm·c++
keyipatience1 小时前
跳表详细解析
开发语言·数据结构·c++·算法·跳表