01
GDB概述
GDB的历史与定位 · 在Linux生态中的角色 · 与其它调试器对比
入门背景
02
GDB快速上手
编译带调试信息的程序 · 启动GDB三种方式 · 基本调试流程演示
上手实战
03
断点原理(上)
软件断点的实现机制(int 3指令)· 断点命中与恢复执行
核心原理
04
断点原理(下)
硬件断点(调试寄存器)· 数据断点watchpoint原理
硬件深入
05
断点管理
break设置 · 条件断点 · 临时断点 · 列表与删除
断点管理
06
观察点与捕获点
watch/rwatch/awatch · catch捕获异常与系统调用
观察捕获
07
单步执行
step与next区别 · stepi/nexti指令级 · finish与until妙用
单步指令
08
栈回溯
backtrace · info frame查看栈帧 · frame n选择帧
栈回溯
09
变量查看与修改
print格式化 · display自动显示 · set var修改变量
变量调试
10
内存查看与修改
x命令格式 · 修改内存 · 查找特定模式
内存底层
11
寄存器查看与修改
info registers · print $rax · 修改寄存器值
寄存器CPU
12
多线程调试
info threads · thread apply · 线程断点 · 锁问题排查
多线程并发
13
多进程调试
set follow-fork-mode · attach子进程 · 调试父子进程
多进程fork
14
核心转储文件分析
生成core dump · ulimit设置 · 分析core定位崩溃
core崩溃
15
GDB脚本化
define命令 · Python脚本扩展 · 自动化调试
脚本自动化
16
GDB与汇编
disassemble · 阅读汇编 · 源码与汇编结合
汇编底层
17
性能分析基础
time命令 · profile功能 · 定位性能瓶颈
性能分析
18
函数调用追踪
record/reverse-step · 逆向调试 · 调用链分析
追踪逆向
19
动态链接库调试
sharedlibrary · 调试.so · 设置库搜索路径
动态库链接
20
远程调试
gdbserver配置 · 跨平台调试 · 嵌入式环境
远程嵌入式
21
GDB前端工具
DDD · gdbgui · VS Code集成 · CGDB
前端工具
22
调试优化代码
-O2/-O3挑战 · volatile · 内联函数调试
优化编译
23
调试内存问题
检测内存泄漏 · 段错误 · AddressSanitizer配合
内存Sanitizer
24
调试死锁与竞态
检测死锁 · 分析线程状态 · 定位数据竞争
死锁竞态
25
GDB与Valgrind结合
Valgrind检测内存错误 · 分析报告 · 实战案例
Valgrind内存
26
GDB与SystemTap结合
SystemTap动态追踪 · 协同工作 · 内核态调试
SystemTap内核
27
GDB与Perf结合
Perf性能采样 · 分析Perf数据 · 热点函数定位
Perf采样
28
GDB高级技巧
条件断点优化 · 宏定义简化 · 初始化文件配置
技巧效率
29
实战案例一
调试段错误程序 · 从崩溃到修复全过程
实战段错误
30
实战案例二
调试多线程死锁 · 从现象到根因分析
实战死锁