调试·剖析·实战
📚 30 章 · 编译器工具链
⭐
01
编译器概述
工作流程 · 前端/中端/后端 · 调试与剖析意义
02
GCC基础与调试信息
编译流程 · -g选项 · -O等级影响
03
GDB入门
安装启动 · run/break/next/step/print/backtrace
04
GDB进阶
条件断点 · 观察点 · 多线程 · core dump
05
LLVM与Clang调试
LLVM架构 · Clang调试选项 · LLDB入门
06
性能剖析基础
瓶颈类型 · 采样/插桩/事件驱动
07
Linux perf工具
perf stat/record/report/top/annotate
08
gprof使用指南
插桩原理 · -pg选项 · flat profile/call graph
09
Valgrind系列工具
Memcheck · Cachegrind · Callgrind
10
AddressSanitizer & UBSan
ASan编译运行 · UBSan检查项 · 对比
11
火焰图实战
数据源 · perf script + FlameGraph · 解读
12
静态分析工具
Clang Static Analyzer · Cppcheck · PVS-Studio
13
动态分析工具
Intel Pin · DynamoRIO · 编写简单工具
14
代码覆盖率分析
gcov/lcov · 覆盖率报告 · 分支/行覆盖率
15
编译器优化与调试冲突
优化失真 · -Og · 调试优化后代码
16
调试宏与内联函数
宏展开技巧 · 内联断点 · -fno-inline
17
逆向调试
GDB reverse-step/continue · rr工具
18
时间测量与计时器
clock_gettime · rdtsc · libpfc
19
内存剖析工具
massif · heaptrack · jemalloc profiling
20
I/O性能剖析
strace · lsof · iostat/iotop
21
多线程与并发调试
GDB线程命令 · ThreadSanitizer · Helgrind
22
GPU编译器与调试
NVCC调试 · cuda-gdb · Nsight
23
编译器中间表示调试
LLVM IR · GIMPLE/RTL · -fdump-tree
24
链接器与加载器调试
ld调试 · ld.so · LD_DEBUG
25
二进制分析工具
objdump · readelf · nm · strings · strip
26
反汇编与调试
GDB disassemble · objdump -d · IDA/Ghidra
27
编译器性能调优
PGO · LTO · AutoFDO
28
自定义编译器插件
LLVM Pass · GCC插件 · 自定义分析
29
CI中的调试与剖析
ASan/UBSan集成 · 性能回归 · 自动化测试
30
综合实战
调试真实Bug · 剖析热点 · 优化报告