01
GDB入门
GDB是什么 · 历史 · 安装与基本使用流程
初识安装流程
02
GDB核心概念
断点 · 观察点 · 捕获点 · 调试符号 · 核心转储
断点观察点core
03
GDB启动与退出
多种启动方式 · 退出 · .gdbinit配置文件
启动.gdbinit
04
GDB基本命令
run · continue · next · step · list · print · quit
常用命令调试
05
断点设置基础
break · 断点编号 · info break · delete
break管理
06
断点高级用法
条件断点 · 临时断点 · 硬件断点 · commands
条件硬件脚本
07
观察点与监视点
watch · rwatch · awatch · 作用域与性能
watch内存
08
捕获点
catch · 系统调用 · C++异常 · 信号
catch异常信号
09
单步调试
step vs next · finish · until · advance
单步finish
10
查看变量与内存
print · display · x · 格式化 · 寄存器
printx寄存器
11
调用栈分析
backtrace · frame · info args/locals · 栈帧切换
backtrace栈帧
12
多线程调试
info threads · thread apply · 断点线程特定 · 锁调试
线程锁
13
多进程调试
follow-fork-mode · detach-on-fork · attach子进程
forkattach
14
核心转储分析
生成core · ulimit · gdb分析 · backtrace定位崩溃
core崩溃
15
GDB脚本与自动化
定义命令 · 条件循环 · Python接口 · 自动化脚本
脚本Python
16
GDB与Makefile集成
-g选项 · 优化陷阱 · -Og优化级别
Makefile优化
17
GDB与IDE集成
VS Code · CLion · Eclipse CDT 配置GDB
IDEVS Code
18
GDB逆向调试
record · reverse-step · reverse-continue · 不可重现Bug
逆向record
19
GDB远程调试
gdbserver · 远程连接 · 嵌入式 · 交叉编译
远程gdbserver
20
GDB与汇编
disassemble · 查看指令 · 单步汇编 · AT&T/Intel语法
汇编disassemble
21
GDB与信号
handle · 信号传递 · SIGSEGV · SIGABRT
信号SIGSEGV
22
GDB与动态库
info sharedlibrary · solib-search-path · 加载符号表
动态库符号
23
GDB与内存泄漏
配合Valgrind · 检查堆内存 · malloc/free调用栈
泄漏Valgrind
24
GDB与段错误
分析段错误 · 错误地址 · 空指针与野指针
段错误空指针
25
GDB与死锁调试
线程状态 · 锁持有者 · 等待图分析
死锁线程
26
GDB与性能分析
profile · 函数调用次数 · 采样分析
性能profile
27
GDB与宏调试
宏展开 · 预处理结果 · 宏断点
宏预处理
28
GDB与Fortran调试
Fortran数组 · 模块调试 · 特有命令
Fortran数组
29
GDB实战案例一
内存越界程序 · 从崩溃到修复全过程
实战内存越界
30
GDB实战案例二
多线程死锁 · 从卡死到解锁全过程
实战死锁