第6章:C++ Sanitizer全家桶实战
第6章:C++ Sanitizer全家桶实战
00. 文章元信息
- 所属卷册:卷四·开发技巧(工程实战篇)
- 主题定位:系统化梳理 Clang/GCC 提供的 Sanitizer 系列工具(ASan / UBSan / TSan / MSan / LSan),既讲"怎么用",也讲"背后怎么实现"
- 读者收益:
- 知道每一种 Sanitizer 能发现哪一类 Bug、不能发现哪一类;
- 读懂 Sanitizer 报告里每一栏的含义,不再被
==1234==ERROR吓到; - 理解 shadow memory、redzone、quarantine、vector clock、origin tracking 等底层机制;
- 会把 Sanitizer 接入 CI,让一半的线上崩溃在提交 MR 的那一刻就被拦下。
- 前置阅读:
- 《从一次 BusError 排查 C++ 崩溃问题》——第 7.4 节简述了 ASan shadow memory;
- 《GDB 与 LLDB 调试实战手册》——和 Sanitizer 是互补关系,一个是"事后看现场",一个是"运行时自动抓";
- 《崩溃流程和捕获原理》——理解
