【问题标题】:How to make MemorySanitizer not stop after one error如何使 MemorySanitizer 在一个错误后不停止
【发布时间】:2017-09-29 08:05:11
【问题描述】:

Clang's documentation 表示“默认情况下,MemorySanitizer 在第一次检测到错误时退出。”

有人知道如何让 MemorySanitizer 不会因错误而停止吗? 上面这句话暗示有办法,但我在文档中没有找到任何东西。

【问题讨论】:

    标签: clang clang++ sanitizer memory-sanitizer


    【解决方案1】:

    看来-fsanitize-recover=memory 选项应该合适。

    来自clang documentation

    控制由 -fsanitize= 标志启用的检查是非致命的。如果检查是致命的,程序将在检测到第一个此类错误并打印错误报告后停止。

    使用-fsanitize-recover=all 应该使所有错误都不是致命的。

    还有一些关于此的 Google 文档(搜索 continue-after-error):

    https://github.com/google/sanitizers/wiki/AddressSanitizer

    【讨论】:

    • 我实际上将它用作链接器标志。原来我编译的时候也得用。
    猜你喜欢
    • 2014-05-06
    • 2018-02-11
    • 2011-03-14
    • 2014-12-16
    • 2016-05-18
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多