llvm-project/compiler-rt/lib/fuzzer
Dokyung Song 1bb1eac6b1 [libFuzzer] Add a command-line option for tracing mutation of corpus inputs in the dot graph format.
This patch adds a new command-line option -mutation_graph_file=FILE for
debugging purposes, which traces how corpus inputs evolve during a fuzzing
run. For each new input that is added to the corpus, a new vertex corresponding
to the added input, as well as a new edge that connects its base input to itself
are written to the given file. Each vertex is labeled with the filename of the
input, and each edge is labeled with the mutation sequence that led to the input
w.r.t. its base input.

The format of the mutation graph file is the dot file format. Once prepended and
appended with "graph {" and "}", respectively, the graph becomes a valid dot
file and can be visualized.

Differential Revision: https://reviews.llvm.org/D86560
2020-09-09 03:28:53 +00:00
..
afl [fuzzer][afl] Fix build with GCC 2020-05-26 11:35:50 -07:00
dataflow [DFSan] Add efficient fast16labels instrumentation mode. 2020-07-29 18:58:47 +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 [tests][libFuzzer] Fix `-Wmissing-field-initializers` after D86092 2020-09-04 13:07:44 -04:00
CMakeLists.txt Revert "Add libFuzzer shared object build output" 2020-08-05 12:11:24 -07:00
FuzzerBuiltins.h [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerBuiltinsMsvc.h [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +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] Scale energy assigned to each input based on input execution time. 2020-09-03 20:38:20 +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 [DFSan] Add efficient fast16labels instrumentation mode. 2020-07-29 18:58:47 +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 Revert "[libFuzzer] Expose fuzzer::FuzzerDriver()" 2020-07-23 17:07:55 -07: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] Add a command-line option for tracing mutation of corpus inputs in the dot graph format. 2020-09-09 03:28:53 +00:00
FuzzerExtFunctions.def [libFuzzer] Always print DSO map on Fuchsia libFuzzer launch 2019-09-17 00:34:41 +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 [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerExtFunctionsWeak.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerExtFunctionsWindows.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerExtraCounters.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerFlags.def [libFuzzer] Add a command-line option for tracing mutation of corpus inputs in the dot graph format. 2020-09-09 03:28:53 +00:00
FuzzerFork.cpp [libFuzzer] Add an option to keep initial seed inputs around. 2020-09-03 15:54:39 +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] Add a command-line option for tracing mutation of corpus inputs in the dot graph format. 2020-09-09 03:28:53 +00:00
FuzzerIO.h [libFuzzer] Add a command-line option for tracing mutation of corpus inputs in the dot graph format. 2020-09-09 03:28:53 +00:00
FuzzerIOPosix.cpp [libFuzzer] Error and exit if user supplied fuzzer writeable directories don't exist 2020-08-26 09:27:07 -07:00
FuzzerIOWindows.cpp [libFuzzer] Error and exit if user supplied fuzzer writeable directories don't exist 2020-08-26 09:27:07 -07:00
FuzzerInterceptors.cpp [libFuzzer] Break dependency on common_interface_defs.h 2020-09-01 15:35:14 -07:00
FuzzerInterface.h [libFuzzer][Windows] Use dllexport for all declarations in FuzzerInterface.h 2019-01-28 17:51:13 +00:00
FuzzerInternal.h [libFuzzer] Add an option to keep initial seed inputs around. 2020-09-03 15:54:39 +00:00
FuzzerLoop.cpp [libFuzzer] Add a command-line option for tracing mutation of corpus inputs in the dot graph format. 2020-09-09 03:28:53 +00:00
FuzzerMain.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerMerge.cpp [libFuzzer] Make -merge=1 to reuse coverage information from the control file. 2019-09-11 14:11:08 +00:00
FuzzerMerge.h [libFuzzer] Fixed description of fuzzer merge control file. 2020-05-29 16:00:26 -07:00
FuzzerMutate.cpp [libFuzzer] Add a command-line option for tracing mutation of corpus inputs in the dot graph format. 2020-09-09 03:28:53 +00:00
FuzzerMutate.h [libFuzzer] Add a command-line option for tracing mutation of corpus inputs in the dot graph format. 2020-09-09 03:28:53 +00:00
FuzzerOptions.h [libFuzzer] Add a command-line option for tracing mutation of corpus inputs in the dot graph format. 2020-09-09 03:28:53 +00:00
FuzzerPlatform.h [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +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] Fix compilation error by including missing platform macro definitions. 2020-07-14 22:26:50 +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 [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerTracePC.h [libFuzzer] Fix endianness issue in ForEachNonZeroByte() 2020-08-04 21:53:27 +02:00
FuzzerUtil.cpp Fix UB in compiler-rt base64 implementation 2020-03-03 13:28:32 +01:00
FuzzerUtil.h [libFuzzer] Fix endianness issue in ForEachNonZeroByte() 2020-08-04 21:53:27 +02:00
FuzzerUtilDarwin.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerUtilFuchsia.cpp [libFuzzer] Fix minimizing timeouts 2020-08-11 22:16:12 +02:00
FuzzerUtilLinux.cpp [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
FuzzerUtilPosix.cpp [libFuzzer] Fix minimizing timeouts 2020-08-11 22:16:12 +02:00
FuzzerUtilWindows.cpp [libFuzzer] Fix minimizing timeouts 2020-08-11 22:16:12 +02:00
FuzzerValueBitMap.h [libFuzzer] Separate platform related macros out from FuzzerDefs.h into FuzzerPlatform.h, and adjust includes in other files. 2020-07-14 21:31:56 +00:00
README.txt
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