01
调试工具链概述
什么是调试工具链?为什么需要?组成:GDB、LLDB、Valgrind、Perf、SystemTap等
概念全景
02
GDB入门
安装与启动,基本命令:run、break、next、step、continue、print、backtrace
基础GDB
03
GDB高级调试
条件断点、观察点、捕获点、多线程调试、远程调试
进阶多线程
04
GDB脚本与自动化
GDB命令脚本、Python扩展、自动化调试流程
脚本自动化
05
LLDB入门
安装与启动,与GDB异同,基本命令解析
LLDB对比
06
LLDB高级特性
表达式求值、类型格式化、断点管理、调试多进程
高级多进程
07
Valgrind入门
工具集概览(Memcheck、Cachegrind、Callgrind、Helgrind)安装与基本使用
Valgrind工具集
08
Valgrind内存检测
Memcheck检测内存泄漏、非法读写、未初始化变量
内存泄漏
09
Valgrind性能分析
Cachegrind缓存模拟、Callgrind函数调用分析
性能缓存
10
Valgrind线程检测
Helgrind检测数据竞争、死锁
线程死锁
11
Perf工具入门
安装、基本事件(cycles、instructions、cache-misses)、perf stat
Perf计数
12
Perf采样分析
perf record/report、热点函数定位、火焰图生成
采样火焰图
13
Perf高级功能
perf top实时监控、perf trace系统调用跟踪、perf probe动态插桩
实时动态
14
SystemTap入门
安装、脚本语言基础、探针机制
SystemTap探针
15
SystemTap实战
监控系统调用、跟踪内核函数、分析性能瓶颈
内核跟踪
16
BPF与eBPF基础
BPF/eBPF概念、bpftrace工具安装与使用
eBPFbpftrace
17
bpftrace实战
单行命令、脚本编写、跟踪文件操作、网络事件
bpftrace网络
18
Strace工具
安装、跟踪系统调用、过滤输出、统计系统调用耗时
系统调用strace
19
Ltrace工具
安装、跟踪库函数调用、与Strace配合使用
库函数ltrace
20
OProfile工具
安装、性能采样、分析报告生成
OProfile采样
21
Google Performance Tools
tcmalloc、cpu_profiler、heap_profiler的使用
tcmalloc性能
22
Sanitizers (AddressSanitizer)
ASan原理、编译选项、检测内存错误
ASan内存
23
Sanitizers (TSan & LSan)
ThreadSanitizer检测数据竞争、LeakSanitizer检测内存泄漏
TSanLSan
24
UBSan与CFI
UndefinedBehaviorSanitizer检测未定义行为、Control Flow Integrity
UBSanCFI
25
集成开发环境调试
VS Code调试配置、CLion调试、Eclipse CDT调试
IDEVS Code
26
远程调试与嵌入式调试
GDB远程调试、OpenOCD与JTAG调试、QEMU调试
远程嵌入式
27
日志与跟踪
syslog、dmesg、LTTng、Ftrace的使用
日志LTTng
28
性能分析综合案例
使用Perf+Valgrind+Strace定位CPU密集型程序瓶颈
综合CPU
29
内存问题综合案例
使用ASan+Valgrind+LSan定位复杂内存泄漏
内存泄漏综合
30
调试工具链最佳实践
工具选择策略、自动化测试集成、CI/CD中的调试
最佳实践CI/CD