gdb基本使用快捷键

简介: 1. gdb简介gdb是Linux下的代码调试工具。程序的发布有debug模式和release模式,Linux的gcc/g++模式,默认是release模式。若想在Linux下调试,程序必须为debug模式。使用:

1. gdb简介

gdb是Linux下的代码调试工具。

程序的发布有debug模式和release模式,Linux的gcc/g++模式,默认是release模式。若想在Linux下调试,程序必须为debug模式。使用:

  • gcc/g++ -o text text.c -g
  • 加上-g选项就变为debug模式。

可以使用查看是否为debug版本:

  • readelf -S text_debug | grep -i debug

c410e26abefc4e4e8131fc1e93f59365.png

2.基本命令

gdb会记录最近一条命令,如果按回车就执行最近的命令。

2.1 进入/退出

  • gdb 文件名:打开调试文件。
  • q:退出gdb


ff870738d8c048ceb557ebaa010c58fc.png

2.2 基本使用

  • list/l 行号 :显示文件代码,从num行开始显示,每次显示10行。
  • run/r :运行程序,相当于VS2019的F5。
  • break/b 行号:在某行设置断点。
  • d n(断点序号):删除序号为n的断点。
  • info b:查看断点信息。

2.3 执行语句

  • n/next :单条执行,逐过程(F10)
  • s/step:进入函数调用(F11)
  • finsh:将当前函数跑完就停下来/快速跑完当前函数。
  • until X行号:跳转到第X行,不建议从一个函数跳到另一个函数,在一个函数内用。
  • c :运行至下一个断点结束。

2.4 查看变量

  • p 变量:打印变量值
  • display 变量名:设置该变量常显示
  • undisplay n:取消对序号为n的常显示。
  • bt :查看调用堆栈

2.5 禁用/启用断点

  • disable X断点:禁用序号为X的断点。
  • enable X断点:启用序号为X断点。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
10月前
|
NoSQL Linux 开发工具
【Linux】第十站:git和gdb的基本使用(下)
【Linux】第十站:git和gdb的基本使用
92 0
|
10月前
|
NoSQL Linux 开发工具
【Linux】第十站:git和gdb的基本使用(上)
【Linux】第十站:git和gdb的基本使用
41 0
|
4月前
|
NoSQL 搜索推荐 openCL
【C/C++ 调试 GDB指南 】gdb调试基本操作
【C/C++ 调试 GDB指南 】gdb调试基本操作
303 2
|
4月前
|
NoSQL Linux 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(下)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
23天前
|
NoSQL Linux C语言
Linux GDB 调试
Linux GDB 调试
44 10
|
24天前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
|
23天前
|
NoSQL
技术分享:如何使用GDB调试不带调试信息的可执行程序
【8月更文挑战第27天】在软件开发和调试过程中,我们有时会遇到需要调试没有调试信息的可执行程序的情况。这可能是由于程序在编译时没有加入调试信息,或者调试信息被剥离了。然而,即使面对这样的挑战,GDB(GNU Debugger)仍然提供了一些方法和技术来帮助我们进行调试。以下将详细介绍如何使用GDB调试不带调试信息的可执行程序。
23 0
|
3月前
|
NoSQL Linux C语言
Linux gdb调试的时候没有对应的c调试信息库怎么办?
Linux gdb调试的时候没有对应的c调试信息库怎么办?
33 1
|
3月前
|
NoSQL Linux C语言
Linux gdb调试的时候没有对应的c调试信息库怎么办?
Linux gdb调试的时候没有对应的c调试信息库怎么办?
23 0
|
3月前
|
NoSQL Linux C++
Linux C/C++ gdb调试正在运行的程序
Linux C/C++ gdb调试正在运行的程序