llvm-project/compiler-rt/lib/fuzzer
Max Moroz 74cec618f3 [libFuzzer] Merge: print feature coverage number as well.
Summary:
feature coverage is a useful signal that is available during the merge
process, but was not printed previously.

Output example:

```
$ ./fuzzer -use_value_profile=1 -merge=1 new_corpus/ seed_corpus/
INFO: Seed: 1676551929
INFO: Loaded 1 modules   (2380 inline 8-bit counters): 2380 [0x90d180, 0x90dacc), 
INFO: Loaded 1 PC tables (2380 PCs): 2380 [0x684018,0x68d4d8), 
MERGE-OUTER: 180 files, 78 in the initial corpus
MERGE-OUTER: attempt 1
INFO: Seed: 1676574577
INFO: Loaded 1 modules   (2380 inline 8-bit counters): 2380 [0x90d180, 0x90dacc), 
INFO: Loaded 1 PC tables (2380 PCs): 2380 [0x684018,0x68d4d8), 
INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 1048576 bytes
MERGE-INNER: using the control file '/tmp/libFuzzerTemp.111754.txt'
MERGE-INNER: 180 total files; 0 processed earlier; will process 180 files now
#1	pulse  cov: 134 ft: 330 exec/s: 0 rss: 37Mb
#2	pulse  cov: 142 ft: 462 exec/s: 0 rss: 38Mb
#4	pulse  cov: 152 ft: 651 exec/s: 0 rss: 38Mb
#8	pulse  cov: 152 ft: 943 exec/s: 0 rss: 38Mb
#16	pulse  cov: 520 ft: 2783 exec/s: 0 rss: 39Mb
#32	pulse  cov: 552 ft: 3280 exec/s: 0 rss: 41Mb
#64	pulse  cov: 576 ft: 3641 exec/s: 0 rss: 50Mb
#78	LOADED cov: 602 ft: 3936 exec/s: 0 rss: 88Mb
#128	pulse  cov: 611 ft: 3996 exec/s: 0 rss: 93Mb
#180	DONE   cov: 611 ft: 4016 exec/s: 0 rss: 155Mb
MERGE-OUTER: succesfull in 1 attempt(s)
MERGE-OUTER: the control file has 39741 bytes
MERGE-OUTER: consumed 0Mb (37Mb rss) to parse the control file
MERGE-OUTER: 9 new files with 80 new features added; 9 new coverage edges
```

Reviewers: hctim, morehouse

Reviewed By: morehouse

Subscribers: delcypher, #sanitizers, llvm-commits, kcc

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D66030

llvm-svn: 368617
2019-08-12 20:21:27 +00:00
..
afl Summary: 2019-04-18 18:49:11 +00:00
dataflow [libFuzzer] split DataFlow.cpp into two .cpp files, one of which can be compiled w/o dfsan to speed things up (~25% speedup) 2019-06-21 01:39:35 +00:00
scripts [libFuzzer] remove the data-flow-trace (DFT) python scripts; their functionality is now part of libFuzzer proper; also write functions.txt to the disk only if this file doesn't exist yet 2019-05-23 01:03:42 +00:00
standalone [libFuzzer] fix missing close on opened file 2019-02-26 19:33:00 +00:00
tests [compiler-rt] Add ConsumeProbability and ConsumeFloatingPoint methods to FDP. 2019-08-08 19:49:37 +00:00
utils [compiler-rt] Add ConsumeProbability and ConsumeFloatingPoint methods to FDP. 2019-08-08 19:49:37 +00:00
CMakeLists.txt Build libfuzzer libcxx-static with PIC 2019-08-05 22:55:17 +00:00
FuzzerBuiltins.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerBuiltinsMsvc.h [libFuzzer][MSVC] Enable building libFuzzer with MSVC 2019-01-22 18:59:25 +00:00
FuzzerCommand.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerCorpus.h [libFuzzer] add -features_dir= flag to dump unique input features on disk 2019-04-13 00:20:31 +00:00
FuzzerCrossOver.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerDataFlowTrace.cpp [libFuzzer] in autofocus mode, give more weight to functions with DFT 2019-06-14 23:29:56 +00:00
FuzzerDataFlowTrace.h [libFuzzer] in autofocus mode, give more weight to functions with DFT 2019-06-14 23:29:56 +00:00
FuzzerDefs.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerDictionary.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerDriver.cpp [libFuzzer] implement a better queue for the fork mode. Add an internal flag -stop_file to allow graceful shutdown of fuzzing. Enhance the logging in the fork mode 2019-06-14 22:56:50 +00:00
FuzzerExtFunctions.def [compiler-rt] Move FDP to include/fuzzer/FuzzedDataProvider.h for easier use. 2019-08-05 19:55:52 +00:00
FuzzerExtFunctions.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerExtFunctionsDlsym.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerExtFunctionsWeak.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerExtFunctionsWindows.cpp [libFuzzer] Remove extra semicolons 2019-02-26 17:46:13 +00:00
FuzzerExtraCounters.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerFlags.def [libFuzzer] implement a better queue for the fork mode. Add an internal flag -stop_file to allow graceful shutdown of fuzzing. Enhance the logging in the fork mode 2019-06-14 22:56:50 +00:00
FuzzerFork.cpp [libFuzzer] implement a better queue for the fork mode. Add an internal flag -stop_file to allow graceful shutdown of fuzzing. Enhance the logging in the fork mode 2019-06-14 22:56:50 +00:00
FuzzerFork.h [libFuzzer] add threads to the fork mode: now you can pass -fork=N to run N concurrent workers. Fork mode is still work-in-progress. 2019-02-14 00:25:43 +00:00
FuzzerIO.cpp [libFuzzer] Replace -seed_corpus to better support fork mode on Win 2019-04-30 20:56:18 +00:00
FuzzerIO.h [libFuzzer] Replace -seed_corpus to better support fork mode on Win 2019-04-30 20:56:18 +00:00
FuzzerIOPosix.cpp [libFuzzer] add -features_dir= flag to dump unique input features on disk 2019-04-13 00:20:31 +00:00
FuzzerIOWindows.cpp [libFuzzer] add -features_dir= flag to dump unique input features on disk 2019-04-13 00:20:31 +00:00
FuzzerInterface.h [libFuzzer][Windows] Use dllexport for all declarations in FuzzerInterface.h 2019-01-28 17:51:13 +00:00
FuzzerInternal.h [libFuzzer] Merge: print feature coverage number as well. 2019-08-12 20:21:27 +00:00
FuzzerLoop.cpp [libFuzzer] Merge: print feature coverage number as well. 2019-08-12 20:21:27 +00:00
FuzzerMain.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerMerge.cpp [libFuzzer] Merge: print feature coverage number as well. 2019-08-12 20:21:27 +00:00
FuzzerMerge.h [libFuzzer] fix the unit tests 2019-02-15 00:15:13 +00:00
FuzzerMutate.cpp [libFuzzer] Make MutateWithMask work when the Mask is shorter than the input. 2019-04-11 18:21:53 +00:00
FuzzerMutate.h [libFuzzer] refactor the way we choose the element to cross-over with, NFC (expected1); add a flag -seed_inputs= to pass extra seed inputs as file paths, not dirs 2019-02-08 01:20:54 +00:00
FuzzerOptions.h [libFuzzer] implement a better queue for the fork mode. Add an internal flag -stop_file to allow graceful shutdown of fuzzing. Enhance the logging in the fork mode 2019-06-14 22:56:50 +00:00
FuzzerRandom.h [libFuzzer] replace slow std::mt19937 with a much faster std::minstd_rand; second attempt after failed r352732, this time with a fix for cmake 2019-02-12 01:00:08 +00:00
FuzzerSHA1.cpp [libFuzzer][MSVC] Enable building libFuzzer with MSVC 2019-01-22 18:59:25 +00:00
FuzzerSHA1.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerTracePC.cpp compiler-rt: Rename .cc file in lib/sanitizer_common to .cpp 2019-07-31 18:51:27 +00:00
FuzzerTracePC.h [libFuzzer] print new functions as they are discovered in the fork mode 2019-02-15 01:22:00 +00:00
FuzzerUtil.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerUtil.h [libFuzzer] experimental performance optimization -lazy_counters, off by default. Posix-only for now, tested on Linux 2019-01-31 00:09:43 +00:00
FuzzerUtilDarwin.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FuzzerUtilFuchsia.cpp [libFuzzer] Migrate to the new exception syscalls on Fuchsia 2019-06-27 21:13:06 +00:00
FuzzerUtilLinux.cpp [libFuzzer] extend the -fork=1 functionality. Still not fully usable, but good enough for the first unit test 2019-02-12 00:12:33 +00:00
FuzzerUtilPosix.cpp [libFuzzer] set libFuzzer's own SEGV handler even one is already present, but call that handler from ours (unless we are unprotecting lazy counters). Call ProtectLazyCounters later, so that it runs after the initialization code in the target. 2019-01-31 01:40:14 +00:00
FuzzerUtilWindows.cpp [libFuzzer] Remove extra semicolons 2019-02-26 17:46:13 +00:00
FuzzerValueBitMap.h [libFuzzer][MSVC] Enable building libFuzzer with MSVC 2019-01-22 18:59:25 +00:00
README.txt [libFuzzer] better README.txt 2017-08-22 01:15:40 +00:00
build.sh Switch from Bourne shell to simply base shell to build libfuzzer 2018-01-12 23:45:24 +00:00

README.txt

See http://llvm.org/docs/LibFuzzer.html