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

Ubuntu下用Valgrind排查内存泄漏遇ASan库加载错误求解决

解决ASan与Valgrind冲突导致的初始化错误
  • 核心问题:AddressSanitizer(ASan)和Valgrind是两套独立的内存检测机制,不能同时启用。你第一次编译后能成功运行,大概率是编译缓存未更新、选项未真正生效;修改程序后重新编译,编译选项正确应用,两者的冲突就触发了报错。

  • 可行解决方案:

    1. 仅用Valgrind排查泄漏
      • 从CMake配置中移除-fsanitize=address和-fsanitize=leak编译选项
      • 编译时添加-g选项生成调试信息,让Valgrind能输出精准的泄漏位置
      • 运行命令:valgrind --leak-check=full ./your_program
    2. 仅用ASan排查泄漏(检测效率远高于Valgrind)
      • 保留-fsanitize=address编译选项,无需使用Valgrind
      • 编译时同样添加-g选项
      • 直接运行程序./your_program,ASan会自动检测内存泄漏、越界等问题,并输出详细报告
    3. 强制尝试共存(不推荐,兼容性差)
      • 先通过find /usr/lib -name libasan.so.5确认libasan的实际路径
      • 运行时执行:LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.5 valgrind ./your_program,但仍可能出现不可预知的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:44:57