diff --git a/README.md b/README.md index 1096e81..5d11805 100644 --- a/README.md +++ b/README.md @@ -245,13 +245,22 @@ ERROR: Failed: Runlength_EncodeDecode By default, DeepState is not very verbose about testing activity, other than failing tests. The `--log_level` argument lowers the threshold for output, with 0 = `DEBUG`, 1 = `TRACE` (output from the -tests, including `printf`), 2 = `INFO` (DeepState messages; this is the default), 3 = `WARNING`, +tests, including from `printf`), 2 = INFO (DeepState messages, the default), 3 = `WARNING`, 4 = `ERROR`, 5 = `EXTERNAL` (output from other programs such as -libFuzzer), and 6 = `CRITICAL`/`FATAL` messages. Lowering the `log_level` can be very +libFuzzer), and 6 = `CRITICAL` messages. Lowering the `log_level` can be very useful for understanding what a DeepState harness is actually doing; often, setting `--log_level 1` in either fuzzing or symbolic 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 Every DeepState executable provides a simple built-in fuzzer that