【发布时间】:2019-04-22 19:06:06
【问题描述】:
我正在尝试在我的项目中将 Address Sanitizer 与 gcc 一起使用。
所以,我在编译器和链接器中添加了所需的标志:
ADD_COMPILE_OPTIONS(-O0 -g -Wall -fsanitize=address -fno-omit-frame-pointer)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
Address Sanitizer 在此之后工作,但它在第一个错误后中止我的应用程序。即使在报告错误后,我也希望 Address Sanitizer 继续运行。所以,我又添加了一个标志,如下所示(根据链接https://github.com/google/sanitizers/wiki/AddressSanitizer):
ADD_COMPILE_OPTIONS(-O0 -g -Wall -fsanitize=address -fsanitize-recover=address -fno-omit-frame-pointer)
在此之后,我收到不支持此恢复标志的错误:
Problems were encountered while collecting compiler information:
cc1plus: error: -fsanitize-recover=address is not supported
PS : 我的 gcc 版本是 gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609
【问题讨论】:
标签: gcc cmake address-sanitizer