地址消毒剂-N个缺陷后我可以停止吗?

时间:2019-02-21 16:44:02

标签: address-sanitizer

我意识到从GCC到clang,某些地址清理器功能可能有所不同;我的兴趣主要在于GCC(目前使用的是GCC 6.2和7.3)

我可以使用ASAN_OPTIONShalt_on_error=0设置为在报告缺陷后继续进行,或者将其设置为1以在报告第一个缺陷后立即停止。

我正在寻找的是在N个缺陷之后停止运行的方法。 halt_on_error=N不起作用,因为它只是一个二进制设置(开/关)。

还有其他方法可以实现这一目标吗?

  • 仅通过某些环境设置在命令行中运行exe时?
  • 在调试器中-例如像b some_asan_defect_reporting_function if (asan_defect_count == N)

在此先感谢您提供任何信息。

戈登

1 个答案:

答案 0 :(得分:0)

ASAN_OPTIONS=max_errors=N以前有一个补充halt_on_error标志,但是它在代码审查期间提出了太多问题,并且没有引人注目的用例,因此我中途放弃了它(您可以看到它已在this stage处删除)。如果您认为这样做可能有用,请尝试在Sanitizers tracker中提交错误。