forked from OSchip/llvm-project
Update libFuzzer documentation for -fsanitize=fuzzer-no-link flag
Differential Revision: https://reviews.llvm.org/D36602 llvm-svn: 310734
This commit is contained in:
parent
33613f63f6
commit
73b7e78350
|
@ -90,12 +90,24 @@ Some important things to remember about fuzz targets:
|
|||
Fuzzer Usage
|
||||
------------
|
||||
|
||||
Very recent versions of Clang (> April 20 2017) include libFuzzer,
|
||||
Very recent versions of Clang (after April 20 2017) include libFuzzer,
|
||||
and no installation is necessary.
|
||||
In order to fuzz your binary, use the `-fsanitize=fuzzer` flag during the compilation::
|
||||
|
||||
clang -fsanitize=fuzzer,address mytarget.c
|
||||
|
||||
This will perform the necessary instrumentation, as well as linking in libFuzzer
|
||||
library.
|
||||
Note that linking in libFuzzer defines the ``main`` symbol.
|
||||
If modifying ``CFLAGS`` of a large project, which also compiles executables
|
||||
requiring their own ``main`` symbol, it may be desirable to request just the
|
||||
instrumentation without linking::
|
||||
|
||||
clang -fsanitize=fuzzer-no-link mytarget.c
|
||||
|
||||
Then libFuzzer can be linked to the desired driver by passing in
|
||||
``-fsanitize=fuzzer`` during the linking stage.
|
||||
|
||||
Otherwise, build the libFuzzer library as a static archive, without any sanitizer
|
||||
options. Note that the libFuzzer library contains the ``main()`` function:
|
||||
|
||||
|
|
Loading…
Reference in New Issue