diff options
author | Kostya Serebryany <kcc@google.com> | 2016-09-18 21:47:08 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2016-09-18 21:47:08 +0000 |
commit | b706b481ba7125f1e0549e1cefcc9d375466c704 (patch) | |
tree | 639b6ba5d843e86252fb85238a83cf40c7038c41 /llvm/lib/Fuzzer/FuzzerUtil.cpp | |
parent | f33a6b713b7388da39dab1aa49e2a0aabf518b14 (diff) | |
download | bcm5719-llvm-b706b481ba7125f1e0549e1cefcc9d375466c704.tar.gz bcm5719-llvm-b706b481ba7125f1e0549e1cefcc9d375466c704.zip |
[libFuzzer] add -print_coverage=1 flag to print coverage directly from libFuzzer
llvm-svn: 281866
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerUtil.cpp')
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerUtil.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerUtil.cpp b/llvm/lib/Fuzzer/FuzzerUtil.cpp index 6764a46e7d6..f4c6fa7d0ba 100644 --- a/llvm/lib/Fuzzer/FuzzerUtil.cpp +++ b/llvm/lib/Fuzzer/FuzzerUtil.cpp @@ -294,4 +294,16 @@ size_t GetPeakRSSMb() { return 0; } +void PrintPC(const char *SymbolizedFMT, const char *FallbackFMT, uintptr_t PC) { + if (EF->__sanitizer_symbolize_pc) { + char PcDescr[1024]; + EF->__sanitizer_symbolize_pc(reinterpret_cast<void*>(PC), + SymbolizedFMT, PcDescr, sizeof(PcDescr)); + PcDescr[sizeof(PcDescr) - 1] = 0; // Just in case. + Printf("%s", PcDescr); + } else { + Printf(FallbackFMT, PC); + } +} + } // namespace fuzzer |