gcc - 不支持地址清理程序选项“-fsanitize-recover=address”
问题描述
我正在尝试在我的项目中将 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
解决方案
推荐阅读
- hyperledger-fabric - Hyperledger Fabric-找不到链码错误
- wpf - Wpf ContextMenu MenuItem 标题绑定
- android - 用于显示聊天列表:按请求值为 false 的子时间戳排序
- javascript - Jquery中的行总和
- hyperledger-composer - 从 Composer 创建频道的选项
- firebase - 离线使用。Flutter Hamilton 应用架构。写入节点并期望云函数更新数据库,然后监听更新 UI
- javascript - 为什么我不能重新分配 window.document 属性?
- python - 高斯过程回归的内核参数:如何在 Scikit-learn 中获取它们?
- android - 备份数据库后,我无法恢复选定的数据库
- git - SourceTree 没有响应