diff options
author | Kostya Serebryany <kcc@google.com> | 2018-05-21 19:47:00 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2018-05-21 19:47:00 +0000 |
commit | cfc4a3e12b343978b104a1b8b0070593fceb5965 (patch) | |
tree | 3eea2f375dfec0d57c3bd2ae2af2fe83c65f6756 /lib/fuzzer/FuzzerTracePC.cpp | |
parent | 6d4a6ff7196268f1568af3d72a2681fb76d9e599 (diff) |
[libFuzzer] reinstate -dump_coverage, which is still in use (reverts r332036)
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@332876 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/fuzzer/FuzzerTracePC.cpp')
-rw-r--r-- | lib/fuzzer/FuzzerTracePC.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/fuzzer/FuzzerTracePC.cpp b/lib/fuzzer/FuzzerTracePC.cpp index ed62cdcf4..fb8544f9c 100644 --- a/lib/fuzzer/FuzzerTracePC.cpp +++ b/lib/fuzzer/FuzzerTracePC.cpp @@ -298,6 +298,15 @@ void TracePC::PrintCoverage() { IterateCoveredFunctions(CoveredFunctionCallback); } +void TracePC::DumpCoverage() { + if (EF->__sanitizer_dump_coverage) { + Vector<uintptr_t> PCsCopy(GetNumPCs()); + for (size_t i = 0; i < GetNumPCs(); i++) + PCsCopy[i] = PCs()[i] ? GetPreviousInstructionPc(PCs()[i]) : 0; + EF->__sanitizer_dump_coverage(PCsCopy.data(), PCsCopy.size()); + } +} + // Value profile. // We keep track of various values that affect control flow. // These values are inserted into a bit-set-based hash map. |