第6章:C++ Sanitizer全家桶实战

📅 2026/7/4 2:06:16 👁️ 阅读次数 📝 编程学习
第6章:C++ Sanitizer全家桶实战

第6章:C++ Sanitizer全家桶实战

00. 文章元信息

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