Kostya Serebryany
|
3c0deb17ec
|
[libFuzzer] simplify TracePC::HandleTrace even further. Also, when dealing with -exit_on_src_pos, symbolize every PC only once
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285223 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-26 18:52:04 +00:00 |
|
Kostya Serebryany
|
7f59a4b62d
|
[libFuzzer] simplify the code in TracePC::HandleTrace a bit more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285147 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-26 00:42:52 +00:00 |
|
Kostya Serebryany
|
9c904557f1
|
[libFuzzer] simplify the code to print new PCs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285145 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-26 00:20:51 +00:00 |
|
Kostya Serebryany
|
cbe5db8703
|
[libFuzzer] simplify the code in TracePC::HandleTrace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285142 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-25 23:52:25 +00:00 |
|
Kostya Serebryany
|
d2c91bff2f
|
[libFuzzer] simplify the code for use_cmp, also use the position hint when available, add a test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285049 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-25 02:04:43 +00:00 |
|
Reid Kleckner
|
57a3dc5d8b
|
Fix -Wunused-variable warning in libFuzzer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284838 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-21 16:26:27 +00:00 |
|
Kostya Serebryany
|
db740ff84a
|
[libFuzzer] reshuffle the code for -exit_on_src_pos and -exit_on_item
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284508 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-18 18:06:05 +00:00 |
|
Kostya Serebryany
|
75281e6436
|
[libFuzzer] better algorithm for -minimize_crash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284299 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-15 01:00:24 +00:00 |
|
Kostya Serebryany
|
3af68729f8
|
[libFuzzer] add -trace_cmp=1 (guiding mutations based on the observed CMP instructions). This is a reincarnation of the previously deleted -use_traces, but using a different approach for collecting traces. Still a toy, but at least it scales well. Also fix -merge in trace-pc-guard mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284273 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-14 20:20:33 +00:00 |
|
Kostya Serebryany
|
76edd8d153
|
[libFuzzer] more detailed message for disabled leak detection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284169 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-13 22:24:10 +00:00 |
|
Kostya Serebryany
|
f980fc0b37
|
[libFuzzer] add -trace_malloc= flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284149 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-13 19:06:46 +00:00 |
|
Kostya Serebryany
|
1a60ba886d
|
[libFuzzer] when shrinking the corpus, delete evicted files previously created by the current process
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283682 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-08 23:24:45 +00:00 |
|
Kostya Serebryany
|
19e25ecdf5
|
[libFuzzer] control the reload interval by a flag, make it 10 seconds by default
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283676 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-08 22:12:14 +00:00 |
|
Kostya Serebryany
|
89268017c2
|
[libFuzzer] be more careful with memory usage, print peak rss in status lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283418 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-06 05:14:00 +00:00 |
|
Kostya Serebryany
|
aca34111f6
|
[libFuzzer] when re-running for lsan, don't look at the coverage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283411 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-05 23:31:01 +00:00 |
|
Kostya Serebryany
|
cc6cbfdebc
|
[libFuzzer] refactoring to make -shrink=1 work for value profile, added a test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283409 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-05 22:56:21 +00:00 |
|
Kostya Serebryany
|
d277734b71
|
[libFuzzer] clear the corpus elements if they are evicted (i.e. smaller elements with proper coverage are found). Make sure we never try to mutate empty element. Print the corpus size in bytes in the status lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283279 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-05 00:25:17 +00:00 |
|
Kostya Serebryany
|
eedfbe0313
|
[libFuzzer] remove dfsan support and some related stale code. This is not being used and as is is pretty weak anyway
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283187 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-04 06:08:46 +00:00 |
|
Kostya Serebryany
|
f46303af79
|
[libFuzzer] implement the -shrink=1 option that tires to make elements of the corpus smaller, off by default
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282995 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-10-01 01:04:29 +00:00 |
|
Kostya Serebryany
|
b6b3db73a6
|
[libFuzzer] remove some experimental code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282983 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-30 23:29:27 +00:00 |
|
Kostya Serebryany
|
5d78fc63a4
|
[libFuzzer] remove unused option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282971 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-30 22:29:57 +00:00 |
|
Kostya Serebryany
|
030bfb83e5
|
[libFuzzer] remove the code for -print_pcs=1 with the old coverage. It still works with the new one (trace-pc-guard)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282831 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-30 01:24:57 +00:00 |
|
Kostya Serebryany
|
ec49d2d369
|
[libFuzzer] more the feature set to InputCorpus; on feature update, change the feature counter of the old best input
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282829 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-30 01:19:56 +00:00 |
|
Kostya Serebryany
|
efa54824a3
|
[sanitizer-coverage/libFuzzer] make the guards for trace-pc 32-bit; create one array of guards per function, instead of one guard per BB. reorganize the code so that trace-pc-guard does not create unneeded globals
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282735 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-29 17:43:24 +00:00 |
|
Kostya Serebryany
|
65f502816c
|
[libFuzzer] add -exit_on_src_pos to test libFuzzer itself, add a test script for RE2 that uses this flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282458 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-27 00:10:20 +00:00 |
|
Kostya Serebryany
|
e2e54904b7
|
[libFuzzer] simplify HandleTrace again, start re-running interesting units and collecting their features.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282316 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-23 23:51:58 +00:00 |
|
Kostya Serebryany
|
fd1fd77cb1
|
[libFuzzer] be more precise about what we reset in TracePC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282225 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-23 02:18:59 +00:00 |
|
Kostya Serebryany
|
07016d4bd5
|
[libFuzzer] fix merging with trace-pc-guard
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282224 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-23 01:58:51 +00:00 |
|
Kostya Serebryany
|
73508a3cb1
|
[libFuzzer] simplify the TracePC logic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282222 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-23 01:20:07 +00:00 |
|
Kostya Serebryany
|
5a965a68f3
|
[libFuzzer] move value profiling logic into TracePC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282219 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-23 00:46:18 +00:00 |
|
Kostya Serebryany
|
28f017d845
|
[libFuzzer] change ValueBitMap to remember the number of bits in it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282216 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-23 00:22:46 +00:00 |
|
Kostya Serebryany
|
43896df9dd
|
[libFuzzer] simplify the crash minimizer; split MaxLen into two: MaxInputLen and MaxMutationLen, allow MaxMutationLen to be less than MaxInputLen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282211 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-22 23:16:36 +00:00 |
|
Kostya Serebryany
|
e9b850b5c5
|
[libFuzzer] add 'features' to the corpus elements, allow mutations with Size > MaxSize, fix sha1 in corpus stats; various refactorings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282129 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-22 01:34:58 +00:00 |
|
Kostya Serebryany
|
e4977b2b7e
|
[libFuzzer] add stats to the corpus; more refactoring
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282121 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-21 22:42:17 +00:00 |
|
Kostya Serebryany
|
a6b3c30ea2
|
[libFuzzer] more refactoring; don't compute sha1sum every time we mutate a unit from the corpus, use the stored one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282115 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-21 21:41:48 +00:00 |
|
Kostya Serebryany
|
2a546868cb
|
[libFuzzer] refactoring: split the large header into many; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282044 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-21 01:50:50 +00:00 |
|
Kostya Serebryany
|
60dd435850
|
[libFuzzer] refactoring: move the Corpus into a separate class; delete two unused experimental features
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282042 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-21 01:04:43 +00:00 |
|
Kostya Serebryany
|
304a0b44f3
|
[libFuzzer] add -print_coverage=1 flag to print coverage directly from libFuzzer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281866 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-18 21:47:08 +00:00 |
|
Kostya Serebryany
|
b9cc2c457f
|
[libFuzzer] change trace-pc to use 8-byte guards
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281810 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-17 05:04:47 +00:00 |
|
Kostya Serebryany
|
f0b5dd76ab
|
[libFuzzer] implement print_pcs with trace-pc-guard. Change the trace-pc-guard heuristic for 8-bit counters to look more like in AFL (not that it's provable better, but the existin test preferes this heuristic)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281577 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-15 04:36:45 +00:00 |
|
Kostya Serebryany
|
26586a8660
|
[libFuzzer] add 8-bit counters to trace-pc-guard handler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281568 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-15 01:30:18 +00:00 |
|
Kostya Serebryany
|
a4826c1b99
|
[libFuzzer] start using trace-pc-guard as an alternative source of coverage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281435 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-14 02:13:06 +00:00 |
|
Kostya Serebryany
|
05082bd46a
|
[libFuzzer] print a failed-merge warning only in the merge mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281130 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-10 02:17:22 +00:00 |
|
Kostya Serebryany
|
7942244fd1
|
[libFuzzer] print a visible message if merge fails due to a crash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281122 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-10 00:15:41 +00:00 |
|
Kostya Serebryany
|
4475d671c4
|
[libFuzzer] improve -print_pcs to not print new PCs coming from libFuzzer itself
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281016 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-09 02:38:28 +00:00 |
|
Kostya Serebryany
|
ddc2d44ce2
|
[libFuzzer] remove unneeded call
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281014 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-09-09 01:57:38 +00:00 |
|
Mike Aizatsky
|
d7a5ad2193
|
[libfuzzer] simplified unit truncation; do not write trunc items to disc
Differential Revision: https://reviews.llvm.org/D24049
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280153 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-08-30 20:49:07 +00:00 |
|
Kostya Serebryany
|
7750b380af
|
[libFizzer] rename -print_new_cov_pcs=1 into -print_pcs=1 and make it more useful: print PCs only after the initial corpus has been read and symbolize them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279787 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-08-25 22:35:08 +00:00 |
|
Kostya Serebryany
|
cf1269a0b2
|
[libFuzzer] simplify the code, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279697 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-08-25 01:25:03 +00:00 |
|
Kostya Serebryany
|
7526feb22f
|
[libFuzzer] when printing the reproducer input, also print the base input and the mutation sequence
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278975 91177308-0d34-0410-b5e6-96231b3b80d8
|
2016-08-17 20:45:23 +00:00 |
|