You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio中ASAN未检测到内存泄漏问题求助

Address Sanitizer(ASAN)未检测到堆内存泄漏的原因及解决办法

MSVC版本的ASAN默认不启用内存泄漏检测功能,这就是你遇到问题的核心原因——并非ASAN无法检测这类泄漏,而是默认配置下没开启该检测项。

要让ASAN检测堆内存未释放的问题,需要手动启用泄漏检测:

  • 方法1:通过环境变量配置
    在运行程序前,设置环境变量:

    set ASAN_OPTIONS=detect_leaks=1
    

    之后再启动编译好的程序,ASAN就会在程序退出时扫描并报告未释放的堆内存。

  • 方法2:在Visual Studio项目中配置
    打开项目属性 -> 调试 -> 环境,添加如下内容:

    ASAN_OPTIONS=detect_leaks=1
    

    保存配置后,用调试器运行程序,就能看到ASAN输出的内存泄漏报告。

补充说明:Windows平台下MSVC默认关闭ASAN的泄漏检测,是因为系统本身提供了CRT内存泄漏检测工具(如_CrtDumpMemoryLeaks),但ASAN的泄漏检测功能在启用后,能提供更详细的调用栈信息,定位泄漏点更高效。

内容的提问来源于stack exchange,提问作者Vader

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:53:13