This is an archive of the discontinued LLVM Phabricator instance.

[libFuzzer] Merge: print feature coverage number as well.
ClosedPublic

Authored by Dor1s on Aug 9 2019, 1:56 PM.

Details

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

Diff Detail

Repository
rL LLVM

Event Timeline

Dor1s created this revision.Aug 9 2019, 1:56 PM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptAug 9 2019, 1:56 PM
Herald added subscribers: llvm-commits, Restricted Project, delcypher. · View Herald Transcript
Dor1s added a comment.Aug 12 2019, 7:48 AM

@morehouse or @hctim please take a look when possible :)

morehouse added inline comments.Aug 12 2019, 10:18 AM
lib/fuzzer/FuzzerMerge.cpp
215 ↗(On Diff #214446)

Should this use UniqFeatures?

239 ↗(On Diff #214446)

Hm. Doesn't this mean AllFeatures == UniqFeatures?

morehouse accepted this revision.Aug 12 2019, 10:20 AM
morehouse added inline comments.
lib/fuzzer/FuzzerMerge.cpp
215 ↗(On Diff #214446)

Never mind, I see UniqFeatures is local to the loop.

239 ↗(On Diff #214446)

Nope, this is in the loop.

This revision is now accepted and ready to land.Aug 12 2019, 10:20 AM
This revision was automatically updated to reflect the committed changes.
Dor1s marked 4 inline comments as done.