01
GDB入门
GDB是什么 · 能解决什么问题 · 安装与启动 · 基本工作流程
基础环境
02
GDB核心概念
断点 · 观察点 · 捕获点 · 程序状态 · 栈帧 · 线程 · 进程
理论核心
03
GDB基本命令
run · continue · next · step · finish · until · list · print · display
命令操作
04
断点艺术
break详解 · 条件断点 · 临时断点 · 硬件断点 · 断点管理
断点进阶
05
观察与捕获
watch · rwatch · awatch · catch · tcatch
观察捕获
06
栈帧与回溯
backtrace · frame · info frame · up · down · select-frame
栈帧回溯
07
变量与内存
print高级 · x命令 · display · whatis · ptype
内存变量
08
表达式求值
GDB表达式语法 · 类型转换 · 函数调用 · 强制类型转换
表达式求值
09
多线程调试
info threads · thread · thread apply · 锁与死锁检测
线程并发
10
多进程调试
set follow-fork-mode · set detach-on-fork · info inferiors
进程fork
11
Core Dump分析
生成core · ulimit · gdb分析 · backtrace分析
故障core
12
汇编级调试
disassemble · stepi · nexti · info registers · layout asm
汇编底层
13
GDB脚本化
定义命令 · 条件执行 · 循环 · 用户自定义 · 初始化文件
脚本自动化
14
GDB与Makefile
调试编译选项 · -g与-O · strip · 调试与发布版本
构建编译
15
指针越界实战(上)
数组越界 · 字符串溢出 · 野指针 · 悬空指针 · 内存泄漏
指针漏洞
16
指针越界实战(下)
堆栈溢出 · use-after-free · double-free · 缓冲区溢出
指针危险
17
段错误 (Segmentation Fault)
原因分析 · 定位方法 · 常见模式 · 修复策略
崩溃段错误
18
内存泄漏检测
valgrind基础 · GDB+valgrind · mtrace · 自定义内存追踪
泄漏valgrind
19
死锁与竞态
死锁检测 · gdb分析 · 锁顺序 · 条件变量 · 信号量
并发死锁
20
性能瓶颈分析
gdb profiling · callgrind · perf · 热点函数 · 优化建议
性能优化
21
GDB与IDE集成
VS Code · Eclipse CDT · CLion · Qt Creator
IDE效率
22
GDB远程调试
gdbserver · 远程连接 · 交叉编译 · 嵌入式设备
远程嵌入式
23
GDB逆向工程
反汇编分析 · patch二进制 · 运行时修改 · hook技术
逆向hook
24
GDB插件开发
Python API · pretty-printer · xmethod · frame filter
插件Python
25
项目重构基础
代码坏味道 · 重构原则 · 重构手法 · 测试先行
重构设计
26
重构实战(一)
函数拆分 · 提取方法 · 内联方法 · 移动方法 · 重命名
函数手法
27
重构实战(二)
类重构 · 提取类 · 内联类 · 提取接口 · 继承体系重构
类继承
28
重构实战(三)
数据重构 · 自封装字段 · 对象替代数组 · 字段下移/上移
数据字段
29
重构实战(四)
条件逻辑简化 · 分解/合并条件 · 引入断言 · 引入null对象
条件简化
30
综合案例
从混乱到优雅——真实项目的GDB调试与重构全过程
实战完整