Linux系统gdb调试常用命令

简介: Linux系统gdb调试常用命令

GDB(GNU调试器)是一款常用的调试工具,用于调试C、C++等编程语言的程序。以下是一些常用的GDB命令:

1. 启动程序:

  - `gdb <executable>`:启动GDB调试器,并加载可执行文件。

2. 设置断点:

  - `break <line>`:在指定行设置断点。

  - `break <function>`:在指定函数的入口处设置断点。

  - `break <file>:<line>`:在指定文件的指定行设置断点。

  - `break <address>`:在指定内存地址设置断点。

  - `tbreak <line>`:临时断点,程序执行到该行时暂停一次,然后自动删除断点。

  - `rbreak <regexp>`:使用正则表达式设置断点。

3. 运行程序:

  - `run`:运行程序。

  - `continue`:继续执行程序,直到下一个断点或程序结束。

  - `next`:逐过程执行,不进入函数内部。

  - `step`:逐语句执行,进入函数内部。

4. 查看和修改变量:

  - `print <variable>`:打印变量的值。

  - `display <variable>`:每次停下来时都打印变量的值。

  - `set variable <variable>=<value>`:修改变量的值。

5. 查看堆栈和调用链:

  - `backtrace` 或 `bt`:显示函数调用的堆栈信息。

  - `frame <number>`:切换到指定的堆栈帧。

  - `up`:切换到上一层调用的堆栈帧。

  - `down`:切换到下一层调用的堆栈帧。

6. 单步调试:

  - `next`:执行下一条语句,不进入函数内部。

  - `step`:执行下一条语句,进入函数内部。

  - `finish`:执行完当前函数,并返回到调用该函数的地方。

7. 查看源代码:

  - `list` 或 `l`:显示当前位置附近的源代码。

  - `list <function>`:显示指定函数的源代码。

8. 其他常用命令:

  - `info breakpoints`:显示所有断点的信息。

  - `delete <breakpoint>`:删除指定断点。

  - `watch <expression>`:设置监视点,当表达式的值发生变化时暂停程序。

  - `quit`:退出GDB调试器。

这只是一些常用的GDB命令,GDB还有其他很多强大的功能和命令,可以根据具体的调试需求进行学习和使用。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
5月前
|
NoSQL Linux 编译器
GDB符号表概念和在Linux下获取符号表的方法
通过掌握这些关于GDB符号表的知识,你可以更好地管理和理解你的程序,希望这些知识可以帮助你更有效地进行调试工作。
254 16
|
4月前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
242 0
|
7月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
11月前
|
缓存 NoSQL Linux
Linux调试
本文介绍了Linux调试、性能分析和追踪的培训资料,涵盖调试、性能分析和追踪的基础知识及常用工具。
716 63
Linux调试
|
10月前
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
4522 6
|
10月前
|
运维 监控 Linux
BPF及Linux性能调试探索初探
BPF技术从最初的网络数据包过滤发展为强大的系统性能优化工具,无需修改内核代码即可实现实时监控、动态调整和精确分析。本文深入探讨BPF在Linux性能调试中的应用,介绍bpftune和BPF-tools等工具,并通过具体案例展示其优化效果。
435 14
|
11月前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
314 1
|
Ubuntu Linux
内核实验(四):Qemu调试Linux内核,实现NFS挂载
本文介绍了在Qemu虚拟机中配置NFS挂载的过程,包括服务端的NFS服务器安装、配置和启动,客户端的DHCP脚本添加和开机脚本修改,以及在Qemu中挂载NFS、测试连通性和解决挂载失败的方法。
851 0
内核实验(四):Qemu调试Linux内核,实现NFS挂载
|
NoSQL Linux 编译器
内核实验(一):使用QEMU+GDB断点调试Linux内核代码
如何配置环境并使用QEMU虚拟机结合GDB进行Linux内核代码的断点调试,包括安装QEMU、交叉编译工具链,编译内核以及通过GDB远程连接进行调试的详细步骤。
1093 0
内核实验(一):使用QEMU+GDB断点调试Linux内核代码
|
NoSQL Linux C语言
Linux GDB 调试
Linux GDB 调试
167 10