Kostya Serebryany
4d9fd7a266
[libFuzzer] remove an experimental flag -use_feature_frequency
...
llvm-svn: 334146
2018-06-06 23:24:41 +00:00
Kostya Serebryany
1fd005f552
[libFuzzer] initial implementation of -data_flow_trace. It parses the data flow trace and prints the summary, but doesn't use the information in any other way yet
...
llvm-svn: 334058
2018-06-06 01:23:29 +00:00
Kostya Serebryany
69c2b71a51
[libFuzzer] reinstate -dump_coverage, which is still in use (reverts r332036)
...
llvm-svn: 332876
2018-05-21 19:47:00 +00:00
Kostya Serebryany
e9c6f06cce
[libFuzzer] add an experimental flag -focus_function: libFuzzer will try to focus on inputs that trigger that function
...
llvm-svn: 332554
2018-05-16 23:26:37 +00:00
Kostya Serebryany
2f7edaeb39
[libFuzzer] deprecate equivalence_server
...
llvm-svn: 332316
2018-05-15 01:15:47 +00:00
Kostya Serebryany
d80e821646
[libFuzzer] remove the dump_coverage flag, it hasn't been working with the inline sanitizer coverage anyway
...
llvm-svn: 332036
2018-05-10 20:24:39 +00:00
Kostya Serebryany
59bf1e8b36
[libFuzzer] remove the experimental support for clang coverage instrumentation. This mode has not been used and our experiments with https://github.com/google/fuzzer-test-suite show that this signal is weaker than the SanitizerCoverage
...
llvm-svn: 332034
2018-05-10 20:12:15 +00:00
Sylvestre Ledru
d9a8b6a745
fix some user facing typos / in the comments
...
llvm-svn: 327402
2018-03-13 14:35:10 +00:00
Matt Morehouse
36c89b3c77
[libFuzzer] Set -experimental_len_control=1000 as default.
...
Summary:
Experiments using
https://github.com/google/fuzzer-test-suite/tree/master/engine-comparison
show a significant increase in coverage and reduction in corpus size
with this option enabled.
Addresses https://llvm.org/pr36371 .
Reviewers: kcc
Reviewed By: kcc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D42932
llvm-svn: 325050
2018-02-13 20:52:15 +00:00
Kostya Serebryany
7ac58ee3e1
[libFuzzer] fix a minor regression in printing
...
llvm-svn: 319975
2017-12-06 22:12:24 +00:00
Matt Morehouse
04304d129b
[libFuzzer] Encapsulate commands in a class.
...
Summary:
To be more portable (especially w.r.t. platforms without system()),
commands should be managed programmatically rather than via string
manipulation on the command line. This change introduces
Fuzzer::Command, with methods to manage arguments and flags, set output
options, and execute the command.
Patch By: aarongreen
Reviewers: kcc, morehouse
Reviewed By: kcc, morehouse
Subscribers: llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D40103
llvm-svn: 319680
2017-12-04 19:25:59 +00:00
Kostya Serebryany
de9bafb162
[libFuzzer] add a flag -malloc_limit_mb
...
llvm-svn: 319590
2017-12-01 22:12:04 +00:00
Kostya Serebryany
6afa7a54be
[libFuzzer] remove stale flags; NFC
...
llvm-svn: 319572
2017-12-01 19:24:06 +00:00
Kostya Serebryany
ad05ee0512
[libFuzzer] add an experimental search heuristic flag -reduce_depth
...
llvm-svn: 319571
2017-12-01 19:18:38 +00:00
Kostya Serebryany
a2ca2dcc46
[libFuzzer] handle SIGUSR1/SIGUSR2 and try to exit grafully on these signals
...
llvm-svn: 317829
2017-11-09 20:30:19 +00:00
Kostya Serebryany
68fdef1f7a
[libFuzzer] allow user to specify the merge control file
...
llvm-svn: 317747
2017-11-09 01:05:29 +00:00
Alex Shlyapnikov
6f1c26f222
[libFuzzer] Periodically purge allocator's quarantine to prolong fuzzing sessions.
...
Summary:
Fuzzing targets that allocate/deallocate a lot of memory tend to consume
a lot of RSS when ASan quarantine is enabled. Purging quarantine between
iterations and returning memory to OS keeps RSS down and should not
reduce the quarantine effectiveness provided the fuzz target does not
preserve state between iterations (in this case this feature can be turned off).
Based on D39153.
Reviewers: vitalybuka
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D39155
llvm-svn: 316382
2017-10-23 22:04:30 +00:00
Kostya Serebryany
4083d54675
[libFuzzer] experimental flag to tweak the corpus distribution. Seems to improve the situation dramatically on the png benchmark and make things worse on a number of micro-puzzles. Needs more A/B testing
...
llvm-svn: 315407
2017-10-11 01:44:26 +00:00
Max Moroz
330496c3fc
[libFuzzer] Disable experimental clang coverage support by default.
...
Summary:
It can be enabled via "-use_clang_coverage=1" flag. Reason for disabling:
libFuzzer resets Clang Counters and makes it impossible to generate coverage
report for a regular fuzz target (i.e. not standalone build).
Reviewers: kcc
Reviewed By: kcc
Subscribers: kcc
Differential Revision: https://reviews.llvm.org/D38604
llvm-svn: 315029
2017-10-05 22:41:03 +00:00
Kostya Serebryany
bcd78491ef
[libFuzzer] minor refactoring, NFC
...
llvm-svn: 313406
2017-09-15 22:10:36 +00:00
Kostya Serebryany
3a8e3c8336
[libFuzzer] refactoring: move reading the seed corpus closer to where it's consumed; NFC
...
llvm-svn: 311972
2017-08-29 02:05:01 +00:00
George Karpenkov
bebcbfb46d
[libFuzzer] Use custom allocators for STL containers in libFuzzer.
...
Avoids ODR violations causing spurious ASAN warnings.
Differential Revision: https://reviews.llvm.org/D37086
llvm-svn: 311866
2017-08-27 23:20:09 +00:00
George Karpenkov
24069a0424
Revert "[libFuzzer] Use custom allocators for STL containers in libFuzzer"
...
This reverts commit 3539efc2f2218dba2bcbd645d0fe276f2b5cf588.
llvm-svn: 311831
2017-08-26 17:50:35 +00:00
George Karpenkov
d50410bfb1
[libFuzzer] Use custom allocators for STL containers in libFuzzer
...
Avoids ODR violations causing spurious ASAN container overflow warnings.
Differential Revision: https://reviews.llvm.org/D37086
llvm-svn: 311830
2017-08-26 17:17:37 +00:00
Kostya Serebryany
2eef816e6e
[libFuzzer] add -print_funcs=1 (on bey default): print newly discovered functions during fuzzing
...
llvm-svn: 311797
2017-08-25 20:09:25 +00:00
George Karpenkov
10ab2ace13
Move libFuzzer to compiler_rt.
...
Resulting library binaries will be named libclang_rt.fuzzer*, and will
be placed in Clang toolchain, allowing redistribution.
Differential Revision: https://reviews.llvm.org/D36908
llvm-svn: 311407
2017-08-21 23:25:50 +00:00