llvm-project/compiler-rt/lib/fuzzer
Joe Pletcher f897e82bfd [fuzzer] Add Windows Visual C++ exception intercept
Adds a new option, `handle_winexcept` to try to intercept uncaught
Visual C++ exceptions on Windows. On Linux, such exceptions are handled
implicitly by `std::terminate()` raising `SIBABRT`. This option brings the
Windows behavior in line with Linux.

Unfortunately this exception code is intentionally undocumented, however
has remained stable for the last decade. More information can be found
here: https://devblogs.microsoft.com/oldnewthing/20100730-00/?p=13273

Reviewed By: morehouse, metzman

Differential Revision: https://reviews.llvm.org/D89755
2020-11-12 13:11:14 -08:00
..
afl [Sanitizers] Remove OpenBSD support (new attempt) 2020-10-20 11:16:09 +01: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 [CMake] Avoid accidental C++ standard library dependency in sanitizers 2020-10-31 02:37:38 -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 [fuzzer] Add Windows Visual C++ exception intercept 2020-11-12 13:11:14 -08: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 [Sanitizers] Remove OpenBSD support (new attempt) 2020-10-20 11:16:09 +01: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 [Sanitizers] Remove OpenBSD support (new attempt) 2020-10-20 11:16:09 +01:00
FuzzerFlags.def [fuzzer] Add Windows Visual C++ exception intercept 2020-11-12 13:11:14 -08: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 [compiler-rt] Suppress -Wunused-result due to ::write when _FORTIFY_SOURCE>0 in glibc 2020-10-12 09:57:12 -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] Added -print_full_coverage flag. 2020-10-23 16:05:54 -07:00
FuzzerLoop.cpp [libFuzzer] Added -print_full_coverage flag. 2020-10-23 16:05:54 -07: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] Reduce default verbosity when printing large mutation sequences 2020-09-16 09:20:57 -07:00
FuzzerMutate.h [compiler-rt][NFC] Fix typo in comment 2020-11-02 13:05:03 +08:00
FuzzerOptions.h [fuzzer] Add Windows Visual C++ exception intercept 2020-11-12 13:11:14 -08:00
FuzzerPlatform.h [Sanitizers] Remove OpenBSD support (new attempt) 2020-10-20 11:16:09 +01: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] Added -print_full_coverage flag. 2020-10-23 16:05:54 -07:00
FuzzerTracePC.h [libFuzzer] Added -print_full_coverage flag. 2020-10-23 16:05:54 -07: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] Remove InterruptHandler from Fuchsia implementation 2020-10-29 00:02:31 -07:00
FuzzerUtilLinux.cpp [Sanitizers] Remove OpenBSD support (new attempt) 2020-10-20 11:16:09 +01:00
FuzzerUtilPosix.cpp [Sanitizers] Remove OpenBSD support (new attempt) 2020-10-20 11:16:09 +01:00
FuzzerUtilWindows.cpp [fuzzer] Add Windows Visual C++ exception intercept 2020-11-12 13:11:14 -08: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

README.txt

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