TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/AFLplusplus/AFLplusplus/llms.txt
Use this file to discover all available pages before exploring further.
afl-showmap utility displays raw tuple (edge coverage) data captured by AFL++ instrumentation. It’s useful for analyzing coverage, eliminating redundant inputs, and understanding program behavior.
Synopsis
Description
afl-showmap runs the target program once with a given input and outputs the coverage map showing which edges (transitions between basic blocks) were executed. Each edge is represented as a tuple with its hit count.
Required Parameters
File to write the trace data to. Use
-o - for stdout. Not required with -S streaming mode.Execution Control
Timeout for each run in milliseconds (default: 1000ms).
Memory limit for child process in megabytes (default: none).
Use QEMU mode for binary-only targets (Linux only).
Use FRIDA mode for binary-only instrumentation.
Use Unicorn mode (Linux only).
Input/Output Settings
Input file read by the tested program. If not specified, input is read from stdin.
Process all files in this directory. Must be combined with
-o (output directory).Process files listed in this file (one path per line).
Streaming mode: read test cases from stdin, write coverage to stdout using a length-value protocol.Protocol format:
- Input:
[u32 len][data] - Output:
[u16 status][u32 edges][(u32,u8)*][u32 stdout_len][stdout_data*][u32 stderr_len][stderr_data*]
Analysis Options
Collect coverage mode. Writes all unique edges to output file and gives a summary. Must be combined with
-i.Show edge coverage only, ignore hit counts. Maps all non-zero values to 1.
Show real tuple values instead of AFL bucketing. Normally, hit counts are classified into buckets (1, 2, 3, 4-7, 8-15, etc.).
Do not classify the map (no bucketing).
Quiet mode - suppress program output and messages.
Allow core dumps.
Examples
Basic Coverage Analysis
Directory Processing
Collect Total Coverage
Compare Coverage
Edge Coverage Only
Binary-Only Target
With Input File
Output Format
Text Format (Default)
Each line contains an edge ID and hit count:- First number: Edge ID (tuple)
- Second number: Hit count (classified into buckets)
- 1 = exactly 1 hit
- 2 = exactly 2 hits
- 3 = exactly 3 hits
- 4 = 4-7 hits
- 5 = 8-15 hits
- 6 = 16-31 hits
- 7 = 32-127 hits
- 8 = 128+ hits
Binary Format
With custom mutator support, binary coverage maps can be generated.Use Cases
Corpus Minimization
afl-showmap is used internally by afl-cmin:
Coverage Analysis
Reproducing Crashes
Integration with Tools
Environment Variables
In cmin mode, only write tuples for crashing inputs.
In cmin mode, write tuples for crashing inputs as well.
Shared memory size for coverage map. Must be >= target’s compiled size.
Time to wait for forkserver during startup (milliseconds).
LD_PRELOAD / DYLD_INSERT_LIBRARIES settings for target.
Exit Codes
0- Successful execution1- Timeout or execution problem2- Target crashed
Tips
Performance
For processing large corpora:Debugging
Remove-q flag to see program output:
See Also
- afl-fuzz - Main fuzzing engine
- afl-cmin - Corpus minimizer (uses afl-showmap)
- afl-analyze - Input file analyzer

