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

问题描述 投票:0回答:1

我意识到一些Address Sanitizer的功能可能会有所不同,从GCC到clang;我对此感兴趣的主要是GCC(目前使用的是GCC 6.2和7.3)

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

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

有没有其他方法来实现这一目标:

  • 只需在命令行运行exe,通过一些env设置?
  • 当在调试器内时 - 例如有点像b some_asan_defect_reporting_function if (asan_defect_count == N)

提前感谢上述任何信息。

戈登

address-sanitizer
1个回答
0
投票

曾经有ASAN_OPTIONS=max_errors=N的补充halt_on_error标志,但它在代码审查期间提出了太多问题,没有令人信服的用例,所以我放弃了它的中途(你可以看到它被丢弃在this stage)。如果您认为它可能有用,请尝试在Sanitizers tracker中提交错误。

© www.soinside.com 2019 - 2024. All rights reserved.