我用的是google's honggfuzz。
安装:
apt-get install binutils-dev libunwind-dev clang-4.0 -y
git clone https://github.com/google/honggfuzz
cd honggfuzz
make
测试编译时出错
# hfuzz-clang persistent-xml2.c -o fuzz_xml
clang (LLVM option parsing): Unknown command line argument '-sanitizer-coverage-prune-blocks=0'. Try: 'clang (LLVM option parsing) -help'
clang (LLVM option parsing): Did you mean '-sanitizer-coverage-level=0'?
我谷歌这个错误,但没有人遇到这个。我怎么能解决这个问题?需要什么要求吗?
最佳答案
我遇到了同样的问题。作为一项工作,我在honggfuzz/hfuzz_cc/hfuzz-cc.c
中评论了以下几行:
// args[(*j)++] = "-mllvm"; // forward next arg to LLVM's option processing
// args[(*j)++] = "-sanitizer-coverage-prune-blocks=0";
从this comment开始,
-sanitizer-coverage-prune-blocks=0
选项关闭性能优化,但不影响honggfuzz使用的代码覆盖率统计:我们已经实现了这个选项,因为它不会改变覆盖精度,但是生成的检测工具最多减少了1/3