小编nuc*_*eon的帖子

未定义的行为消毒剂抑制文件:无法解析抑制

使用-fsanitize=undefined使用 clang 3.6 编译应用程序后,我尝试在使用抑制文件的同时启动检测程序以忽略一些错误:

UBSAN_OPTIONS="suppressions=ubsan.supp" ./app.exe
Run Code Online (Sandbox Code Playgroud)

抑制文件 ubsan.supp 包含:

signed-integer-overflow:example.c
Run Code Online (Sandbox Code Playgroud)

这会导致错误消息:

UndefinedBehaviorSanitizer: failed to parse suppressions
Run Code Online (Sandbox Code Playgroud)

gcc 4.9 版本也会发生同样的情况。我能找到的唯一文档是http://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html,它适用于 clang 3.9,而我使用的是 3.6(它没有包含 ubsan 的文档)。

任何人都可以提供适用于 clang 3.6 的 ubsan 抑制文件的工作示例吗?

编辑:通过浏览 ubsan 的源代码,我发现唯一有效的抑制类型可能是“vptr_check”——但不知道我在看哪个版本。任何人都可以确认在 clang 3.9 中有更多的抑制类型可用吗?

clang sanitizer ubsan

5
推荐指数
1
解决办法
1451
查看次数

标签 统计

clang ×1

sanitizer ×1

ubsan ×1