aboutsummaryrefslogtreecommitdiff
path: root/doc/fuzzing.md
diff options
context:
space:
mode:
authorAlex Groce <agroce@gmail.com>2021-07-28 13:03:08 -0700
committerGitHub <noreply@github.com>2021-07-28 13:03:08 -0700
commit8a4f0fcd3fc1a35c1482975114555b0fed75a1c0 (patch)
tree0d121e22003372d439a36f2e511aa03c2ca79503 /doc/fuzzing.md
parent4b1fb50def0dea0cd320bc43c12d9a12edde0390 (diff)
downloadbitcoin-8a4f0fcd3fc1a35c1482975114555b0fed75a1c0.tar.xz
Document faster throughput configuration
Diffstat (limited to 'doc/fuzzing.md')
-rw-r--r--doc/fuzzing.md4
1 files changed, 4 insertions, 0 deletions
diff --git a/doc/fuzzing.md b/doc/fuzzing.md
index 6fc9077e4c..6605749557 100644
--- a/doc/fuzzing.md
+++ b/doc/fuzzing.md
@@ -83,6 +83,10 @@ INFO: seed corpus: files: 991 min: 1b max: 1858b total: 288291b rss: 150Mb
```
+## Run without sanitizers for increased throughput
+
+Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/bitcoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md). Patience is useful; even with improved throughput, libFuzzer may need days and 10s of millions of executions to reach deep/hard targets.
+
## Reproduce a fuzzer crash reported by the CI
- `cd` into the `qa-assets` directory and update it with `git pull qa-assets`