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
目录
相关文章
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
986 3
Linux系统禁用swap
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1573 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
1058 3
Linux系统初始化脚本
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
741 18
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1202 1
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1483 1
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
2684 10
|
缓存 NoSQL 安全
Linux设备驱动程序(四)——调试技术3
Linux设备驱动程序(四)——调试技术3
603 0
|
NoSQL 安全 Linux
Linux设备驱动程序(四)——调试技术1
Linux设备驱动程序(四)——调试技术1
582 0
|
Linux 测试技术 API
Linux内核调试技术(一)kprobe使用与实现
Linux内核调试技术(一)kprobe使用与实现