【问题标题】:How to suppress LeakSanitizer report when running under -fsanitize=address?在 -fsanitize=address 下运行时如何抑制 LeakSanitizer 报告?
【发布时间】:2018-12-06 05:34:53
【问题描述】:

当我使用-fsanitize=address 编译我的 C++ 代码时,我的软件在退出时会打印出一个泄漏列表。有没有办法避免泄漏报告(我只对内存损坏感兴趣,而不是泄漏)?我访问了带有ASAN flags page 的页面,但看起来这些标志中的任何一个都不匹配。

【问题讨论】:

  • 嗯,您告诉编译器添加代码来检查程序的正确行为,但是您不想要程序行为错误的信息? ...只需再次删除标志。
  • 如果您不想要他的报告,使用-fsanitize=address 有什么意义
  • @Tyker 因为 OP 对内存溢出感兴趣,但对内存泄漏不感兴趣?
  • @yugr 确实。我想知道内存溢出、双重释放、对象被销毁后临时引用的使用等。在我运行应用程序时泄漏并不重要。不到 1 秒。并退出。它可以随心所欲地泄漏。 Unix 方式!

标签: c++ address-sanitizer leak-sanitizer


【解决方案1】:

您可以使用export ASAN_OPTIONS=detect_leaks=0 运行或向您的应用程序添加功能:

const char* __asan_default_options() { return "detect_leaks=0"; }

更多详情请见Flags wiki

【讨论】:

    猜你喜欢
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 2020-10-08
    • 2017-06-24
    • 1970-01-01
    • 2017-06-23
    相关资源
    最近更新 更多