some readme cleanup, removing duplicate section
This commit is contained in:
parent
6faf3dab38
commit
7faf6a2e6b
33
README.md
33
README.md
@ -252,14 +252,6 @@ useful for understanding what a DeepState harness is actually doing;
|
|||||||
often, setting `--log_level 1` in either fuzzing or symbolic
|
often, setting `--log_level 1` in either fuzzing or symbolic
|
||||||
execution will give sufficient information to debug your test harness.
|
execution will give sufficient information to debug your test harness.
|
||||||
|
|
||||||
## A Note on Mac OS and Forking
|
|
||||||
|
|
||||||
Normally, when running a test for replay or fuzzing, DeepState forks
|
|
||||||
in order to cleanly handle crashes of a test. Unfortunately, `fork()`
|
|
||||||
on mac OS is extremely slow. When using the built-in fuzzer or
|
|
||||||
replaying tests, it is highly recommended to add the `--no_fork`
|
|
||||||
option on mac OS, unless you need the added crash handling (that is,
|
|
||||||
things aren't working without that option).
|
|
||||||
|
|
||||||
## Built-In Fuzzer
|
## Built-In Fuzzer
|
||||||
|
|
||||||
@ -279,13 +271,13 @@ Note that while symbolic execution only works on Linux, without a
|
|||||||
fairly complex cross-compilation process, the brute force fuzzer works
|
fairly complex cross-compilation process, the brute force fuzzer works
|
||||||
on macOS or (as far as we know) any Unix-like system.
|
on macOS or (as far as we know) any Unix-like system.
|
||||||
|
|
||||||
## A Note on Mac OS and Forking
|
## A Note on MacOS and Forking
|
||||||
|
|
||||||
Normally, when running a test for replay or fuzzing, DeepState forks
|
Normally, when running a test for replay or fuzzing, DeepState forks
|
||||||
in order to cleanly handle crashes of a test. Unfortunately, `fork()`
|
in order to cleanly handle crashes of a test. Unfortunately, `fork()`
|
||||||
on mac OS is _extremely_ slow. When using the built-in fuzzer or
|
on macOS is _extremely_ slow. When using the built-in fuzzer or
|
||||||
replaying more than a few tests, it is highly recommended to add the `--no_fork`
|
replaying more than a few tests, it is highly recommended to add the `--no_fork`
|
||||||
option on mac OS, unless you need the added crash handling (that is,
|
option on macOS, unless you need the added crash handling (that is,
|
||||||
only when things aren't working without that option).
|
only when things aren't working without that option).
|
||||||
|
|
||||||
## Fuzzing with libFuzzer
|
## Fuzzing with libFuzzer
|
||||||
@ -328,12 +320,17 @@ CC=/usr/local/opt/llvm\@6/bin/clang CXX=/usr/local/opt/llvm\@6/bin/clang++ BUILD
|
|||||||
make install
|
make install
|
||||||
```
|
```
|
||||||
|
|
||||||
On mac OS, libFuzzer's normal output is not visible. On any platform,
|
|
||||||
you can see more about what DeepState under libFuzzer is doing by
|
|
||||||
setting the `LIBFUZZER_LOUD` environment variable.
|
|
||||||
|
|
||||||
Other ways of getting an appropriate LLVM may also work.
|
Other ways of getting an appropriate LLVM may also work.
|
||||||
|
|
||||||
|
On macOS, libFuzzer's normal output is not visible. Because libFuzzer
|
||||||
|
does not fork to execute tests, there is no issue with fork speed on
|
||||||
|
macOS for this kind of fuzzing.
|
||||||
|
|
||||||
|
On any platform,
|
||||||
|
you can see more about what DeepState under libFuzzer is doing by
|
||||||
|
setting the `LIBFUZZER_LOUD` environment variable, and tell libFuzzer
|
||||||
|
to stop upon finding a failing test using `LIBFUZZER_EXIT_ON_FAIL`.
|
||||||
|
|
||||||
## Test case reduction
|
## Test case reduction
|
||||||
|
|
||||||
While tests generated by symbolic execution are likely to be highly
|
While tests generated by symbolic execution are likely to be highly
|
||||||
@ -442,7 +439,11 @@ input file) in your `main`.
|
|||||||
|
|
||||||
Because AFL and other file-based fuzzers only rely on the DeepState
|
Because AFL and other file-based fuzzers only rely on the DeepState
|
||||||
native test executable, they should (like DeepState's built-in simple
|
native test executable, they should (like DeepState's built-in simple
|
||||||
fuzzer) work fine on macOS and other Unix-like OSes.
|
fuzzer) work fine on macOS and other Unix-like OSes. On macOS, you
|
||||||
|
will want to consider doing the work to use [persistent mode](http://lcamtuf.blogspot.com/2015/06/new-in-afl-persistent-mode.html), or even
|
||||||
|
running inside a VM, due to AFL (unless in persistent mode) relying
|
||||||
|
extensively on
|
||||||
|
forks, which are very slow on macOS.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user