Apple Silicon(Arm64)macOS下Asan与Lsan的支持现状问询
Apple Silicon(Arm64)macOS上Asan与Lsan的可用性及问题说明
官方支持现状
- Arm64架构的macOS目前未获得Asan(AddressSanitizer)与Lsan(LeakSanitizer)的官方正式支持,该结论来自AddressSanitizer官方Wiki及Homebrew社区的讨论内容。
第三方编译器的实际表现
- Homebrew安装的GCC:暂不支持Asan功能,尝试编译启用Asan的代码会出现编译失败或运行异常的情况。
- Homebrew安装的Clang:可正常使用Asan的基础内存错误检测功能,但设置环境变量
ASAN_OPTIONS=detect_leaks=1启用Lsan内存泄漏检测时,存在功能异常——比如无法正确识别内存泄漏、产生误报,甚至导致程序崩溃。
潜在问题与替代方案
- 当前Arm64 macOS上的Asan/Lsan支持属于实验性的非官方状态,功能稳定性无法保障,不同版本的Clang(如Xcode自带版本与Homebrew版本)表现可能存在明显差异。
- 若需可靠的内存泄漏排查能力,暂时可考虑以下替代方案:
- 使用Xcode自带Instruments工具中的Leaks模块进行泄漏检测
- 切换至x86_64架构的Rosetta 2兼容模式编译运行程序,该模式下Asan/Lsan的支持相对成熟
内容的提问来源于stack exchange,提问作者wytsai7660
相关产品推荐
相关产品推荐

