http://llvm.org/docs/LibFuzzer.html 我现在正在使用 libfuzzer 做一些工作,但是当我使用官方玩具示例时。当我运行这个命令时:
clang++ -fsanitize=address -fsanitize-coverage=edge test-fuzzer.cc Fuzzer*.o
发生错误
clang: error: invalid value 'edge' in 'fsanitize-coverage=edge'
似乎 clang 支持这个论点,但我想知道如何才能看到支持什么值...... 我通过 apt-get 使用 unbuntu14.04 安装了 llvm 3.6...
最佳答案
fsanitize-coverage=
标志的语法已更改,如 this commit message 中所述。从 2015 年 5 月开始。这一点与您特别相关:
Original semantics of -fsanitize-coverage flag is preserved:
* -fsanitize-coverage=0 disables the coverage
* -fsanitize-coverage=1 is a synonym for -fsanitize-coverage=func
* -fsanitize-coverage=2 is a synonym for -fsanitize-coverage=bb
* -fsanitize-coverage=3 is a synonym for -fsanitize-coverage=edge
* -fsanitize-coverage=4 is a synonym for -fsanitize-coverage=edge,indirect-calls
所以您可以尝试-fsanitize-coverage=3
。
关于clang - 使用 LLVM LibFuzzer 时, 'edge' 中的值 'fsantize-coverage=edge' 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35436249/