01
GDB入门
GDB的历史与哲学 · 系统编程核心地位 · 安装与基本启动
哲学安装
02
断点基础
设置断点(break) · 查看断点 · 删除与禁用
breakinfo
03
断点进阶
条件断点 · 硬件断点 · 观察点 · 捕获点
条件硬件
04
程序执行控制
单步执行(step/next) · continue · finish · until
单步跳过
05
栈帧回溯
查看调用栈(backtrace) · 切换栈帧 · info locals
backtraceframe
06
变量与内存查看
print · display · x命令 · 格式化输出
内存格式化
07
表达式求值与类型转换
GDB表达式语法 · 类型转换 · call函数
表达式call
08
多线程调试
info threads · 切换线程 · 线程断点 · 死锁排查
线程死锁
09
多进程调试
跟踪子进程 · attach · 进程间切换
forkattach
10
核心转储分析
生成core dump · 加载core · 恢复现场 · 分析崩溃
core崩溃
11
信号处理
信号机制 · 捕获信号(handle) · 模拟发送(signal)
信号handle
12
汇编级调试
disassemble · stepi/nexti · info registers
汇编寄存器
13
动态链接库调试
加载共享库 · 设置库搜索路径 · 调试动态代码
共享库动态
14
GDB脚本化
命令脚本 · Python扩展 · 自动化调试
脚本Python
15
条件断点实战
循环特定迭代 · 复杂数据结构 · 性能影响
实战性能
16
内存泄漏排查
检测堆内存 · malloc/free栈 · 结合Valgrind
泄漏Valgrind
17
段错误(Segfault)分析
非法内存访问 · 空指针 · 栈溢出
段错误空指针
18
死锁与竞态条件
检测死锁 · 锁顺序 · 重现竞态
死锁竞态
19
性能热点分析
GDB采样 · 函数调用频次 · 定位瓶颈
性能采样
20
项目重构中的调试策略
遗留代码 · 安全断点 · 重构验证
重构策略
21
逆向工程与补丁分析
分析二进制 · 反汇编逻辑 · 验证补丁
逆向补丁
22
嵌入式系统调试
gdbserver · 交叉编译 · 资源受限技巧
嵌入式gdbserver
23
内核模块调试
KGDB · 内核断点 · 内核崩溃分析
内核KGDB
24
GDB与IDE集成
VS Code配置 · CLion · Eclipse CDT
IDEVS Code
25
GDB与CI/CD
自动化测试 · core dump收集 · 回归测试
CI/CD自动化
26
GDB高级技巧
反向调试 · 非侵入式 · 调试优化代码
反向优化
27
GDB与其他工具联动
strace/ltrace · perf · SystemTap
straceperf
28
GDB常见陷阱与误区
调试符号缺失 · 优化器干扰 · 异步信号
陷阱符号
29
GDB性能优化
减少断点开销 · 硬件辅助 · 批量命令
优化硬件
30
综合实战:网络服务调试
搭建环境 · 复现Bug · 定位根因 · 修复验证
实战网络