当前位置: 首页 > news >正文

GDB 调试命令详解:高效掌握常用调试技巧

🐞 GDB 调试命令详解:高效掌握常用调试技巧

GNU Debugger(GDB)是 Linux 下最强大的 C/C++ 调试工具。本文将系统梳理 GDB 的常用命令,覆盖运行控制、断点管理、变量查看、线程与进程调试等核心功能,助你快速掌握高效调试技巧。

🎯 一、程序运行与控制

命令简写功能说明
runr启动程序运行
continuec继续执行到下一个断点
nextn单步执行,不进入函数
steps单步执行,进入函数
until——执行至当前循环结束或指定行
finish——执行至当前函数返回
call 函数(参数)——调用函数
quitq退出 GDB

⛳ 二、断点管理

📍 2.1 设置断点(Breakpoint)

break 42
break main.c:42
break my_func
break func if x==3

🧹 2.2 删除与控制断点

delete 1
disable 1
enable 1
info breakpoints
clear 42

💾 2.3 断点持久化

save breakpoints bp.txt
source bp.txt

🕵️ 三、监视点(Watchpoint)

watch var
rwatch var
awatch var
info watchpoints
set can-use-hw-watchpoints 0/1

🧱 四、查看源代码

list
list 100
list main

📦 五、表达式与变量

命令功能
print var / p var打印变量值
display var自动显示变量值
whatis var查看变量类型
info functions显示函数信息
info locals显示局部变量

🧠 六、内存与地址

x/3uh 0x54320
  • 显示格式:x(十六进制)、d(十进制)、u(无符号)、c(字符)、f(浮点)
  • 单位大小:b(1 字节)、h(2 字节)、w(4 字节)、g(8 字节)

📊 七、程序运行信息

where / bt
up / down
info program
set args arg1 arg2
show args

🪟 八、窗口布局

layout src
layout asm
layout regs
layout split
Ctrl + L

🔀 九、多线程调试

info threads
thread 2
break file:line thread all
thread apply all bt

🧷 线程调度锁

set scheduler-locking on
set scheduler-locking off
set scheduler-locking step

🧬 十、多进程调试

set follow-fork-mode child
set detach-on-fork off

📂 十一、源码路径与信号控制

set substitute-path /old/path /new/path
handle SIGPIPE nostop noprint
  • stop:暂停程序
  • nostop:不暂停
  • print/noprint:是否输出信息
  • pass/nopass:是否传递信号给程序

✅ 总结

  • 熟练掌握缩写命令(如 rnsp)能显著提升调试效率。
  • 合理使用断点与监视点,可以大大简化定位 bug 的过程。
  • 多线程、多进程调试技巧适用于复杂项目环境。

相关文章:

  • 构件与中间件技术:概念、复用、分类及标准全解析
  • IS-IS度量值
  • 一、Appium环境安装
  • Redis之分布式锁
  • Windows Server 2019 安装 Docker 完整指南
  • 0基础学前端---JS【计算机基础、变量、数据类型】
  • 学习海康VisionMaster之平行线计算
  • 3 VS Code 深度配置与优化指南:settings.json 详解、快捷键大全、实用插件推荐及离线安装方法
  • 设计模式实践:模板方法、观察者与策略模式详解
  • ES6学习03-字符串扩展(unicode、for...of、字符串模板)和新方法()
  • 大模型微调数据集怎么搞?基于easydataset实现文档转换问答对json数据集!
  • Scala day4(tuple, set and map)
  • echarts 图表
  • 【阶次跟踪】变转速阶次包络谱
  • 海洋垃圾分割数据集labelme格式3110张8类别
  • 从案例看建设工程领域居间合同的法律效力
  • 洛谷P8749 [蓝桥杯 2021 省 B] 杨辉三角形
  • 关于无线网络安全的基础知识,涵盖常见威胁、防护措施和实用建议
  • 简单记录一下Android四大组件
  • MySQL部分总结
  • 国家主席习近平同普京总统举行大范围会谈
  • 江淮、极氪、奇瑞,排着队造“劳斯莱斯”
  • 金融监管总局:做好2025年小微企业金融服务工作
  • 轿车追尾半挂车致3死1伤,事故调查报告:司机过分依赖巡航系统
  • 碧桂园服务:拟向杨惠妍全资持有的公司提供10亿元贷款,借款将转借给碧桂园用作保交楼
  • 外交部发言人就当前印巴局势答记者问