我意识到一些Address Sanitizer的功能可能会有所不同,从GCC到clang;我对此感兴趣的主要是GCC(目前使用的是GCC 6.2和7.3)
我可以使用ASAN_OPTIONS
设置halt_on_error=0
以在报告缺陷后继续运行,或者在报告第一个缺陷后将其设置为1以停止。
我正在寻找的是一种在N缺陷后停止的方法。 halt_on_error=N
不起作用,因为它只是一个二进制设置(开/关)。
有没有其他方法来实现这一目标:
b some_asan_defect_reporting_function if (asan_defect_count == N)
提前感谢上述任何信息。
戈登
曾经有ASAN_OPTIONS=max_errors=N
的补充halt_on_error
标志,但它在代码审查期间提出了太多问题,没有令人信服的用例,所以我放弃了它的中途(你可以看到它被丢弃在this stage)。如果您认为它可能有用,请尝试在Sanitizers tracker中提交错误。