Skip to content

Commit 8c40aeb

Browse files
docs(fuzz): Clarify out/ resume and whatsup monitoring.
1 parent a4df08e commit 8c40aeb

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

compiler/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,11 @@ cd compiler/fuzz-afl
7373
./seeds.sh # generate corpus + dictionary from vm.json (once)
7474
cargo afl build # instrument on stable, no nightly
7575
cargo afl fuzz -i in -o out -x edge.dict target/debug/afl-pipeline # runs until Ctrl-C; add -V 300 to stop after 300s
76+
77+
cargo afl whatsup out # status summary of the ./out campaign; run in another terminal while fuzzing
7678
```
7779

78-
Seeds and the dictionary are generated from `tests/cases/vm.json`, so they are gitignored. Under WSL, prefix the fuzz command with `AFL_SKIP_CPUFREQ=1 AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1`. See [Fuzzing](https://edgepython.com/implementation/fuzzing) for details.
80+
Seeds and the dictionary are generated from `tests/cases/vm.json`, so they are gitignored. Reusing the same `out/` resumes the campaign: AFL recalibrates the saved queue (the dry-run pass) before fuzzing, so `execs` sits at 0 for a while; delete it with `rm -rf out` for a clean start. Under WSL, prefix the fuzz command with `AFL_SKIP_CPUFREQ=1 AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1`. See [Fuzzing](https://edgepython.com/implementation/fuzzing) for details.
7981

8082
## References
8183

docs/pages/implementation/fuzzing.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ cd compiler/fuzz-afl
1616
./seeds.sh # generate corpus + dictionary from vm.json (once)
1717
cargo afl build # instrument on stable, no nightly
1818
cargo afl fuzz -i in -o out -x edge.dict target/debug/afl-pipeline # runs until Ctrl-C; add -V 300 to stop after 300s
19+
20+
cargo afl whatsup out # status summary of the ./out campaign; run in another terminal while fuzzing
1921
```
2022

21-
Under WSL, prefix the fuzz command with `AFL_SKIP_CPUFREQ=1 AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1` to bypass the core-pattern and CPU-governor checks. Crashes and hangs land in `out/default/`. Reproduce one by piping it back into the target:
23+
Reusing the same `out/` resumes the campaign: AFL recalibrates the saved queue (the dry-run pass) before fuzzing, so `execs` sits at 0 for a while; delete it with `rm -rf out` for a clean start. Under WSL, prefix the fuzz command with `AFL_SKIP_CPUFREQ=1 AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1` to bypass the core-pattern and CPU-governor checks. Crashes and hangs land in `out/default/`. Reproduce one by piping it back into the target:
2224

2325
```bash
2426
./target/debug/afl-pipeline < out/default/crashes/<id>

0 commit comments

Comments
 (0)