From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Alexander Bulekov <alxndr@bu.edu>, qemu-devel@nongnu.org
Cc: darren.kenny@oracle.com, bsd@redhat.com, stefanha@redhat.com
Subject: Re: [PATCH] fuzz: add information about useful libFuzzer flags
Date: Sun, 24 May 2020 18:43:22 +0200 [thread overview]
Message-ID: <5a052c47-82ec-25ae-47ed-4a684a0119d0@redhat.com> (raw)
In-Reply-To: <20200524143738.23218-1-alxndr@bu.edu>
On 5/24/20 4:37 PM, Alexander Bulekov wrote:
> Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
> ---
> docs/devel/fuzzing.txt | 33 +++++++++++++++++++++++++++++++++
> 1 file changed, 33 insertions(+)
>
> diff --git a/docs/devel/fuzzing.txt b/docs/devel/fuzzing.txt
> index 324d2cd92b..3458763e53 100644
> --- a/docs/devel/fuzzing.txt
> +++ b/docs/devel/fuzzing.txt
> @@ -45,6 +45,39 @@ Information about these is available by passing -help=1
> Now the only thing left to do is wait for the fuzzer to trigger potential
> crashes.
>
> +== Useful libFuzzer flags ==
> +
> +As mentioned above, libFuzzer accepts some arguments. Passing -help=1 will list
> +the available arguments. In particular, these arguments might be helpful:
> +
> +$CORPUS_DIR/ : Specify a directory as the last argument to libFuzzer. libFuzzer
> +stores each "interesting" input in this corpus directory. The next time you run
> +libFuzzer, it will read all of the inputs from the corpus, and continue fuzzing
> +from there.
Maybe describe we can use multiple directories, the first one is where
new inputs are written.
> +
> +-max_len=4096 : specify the maximum byte-length of the inputs libFuzzer will
> +generate.
> +
> +-close_fd_mask={1,2,3} : close, stderr, or both. Useful for targets that
> +trigger many debug/error messages, or create output on the serial console.
> +
> +-jobs=4 -workers=4 : These arguments configure libFuzzer to run 4 fuzzers in
> +parallel.
The difference between job/worker is not clear...
> Replace 4 with a number appropriate for your machine. Make sure to
> +specify a $CORPUS_DIR, which will allow the parallel fuzzers to share
> +information about the interesting inputs they find.
> +
> +-use_value_profile=1 : For each comparison operation, libFuzzer computes
> +(caller_pc&4095) | (popcnt(Arg1 ^ Arg2) << 12) and places this in the coverage
> +table. Useful for targets with "magic" constants. If Arg1 came from the fuzzer's
> +input and Arg2 is a magic constant, then each time the hamming distance
"Hamming" (lastname).
Thanks!
> +between Arg1 and Arg2 decreases, libFuzzer adds the input to the corpus.
> +
> +-shrink=1 : Tries to make elements of the corpus "smaller". Might lead to
> +better coverage performance, depending on the target.
> +
> +Note that libFuzzer's exact behavior will depend on the version of
> +clang and libFuzzer used to build the device fuzzers.
> +
> == Adding a new fuzzer ==
> Coverage over virtual devices can be improved by adding additional fuzzers.
> Fuzzers are kept in tests/qtest/fuzz/ and should be added to
>
prev parent reply other threads:[~2020-05-24 16:44 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-24 14:37 [PATCH] fuzz: add information about useful libFuzzer flags Alexander Bulekov
2020-05-24 16:43 ` Philippe Mathieu-Daudé [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5a052c47-82ec-25ae-47ed-4a684a0119d0@redhat.com \
--to=philmd@redhat.com \
--cc=alxndr@bu.edu \
--cc=bsd@redhat.com \
--cc=darren.kenny@oracle.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).