blob: 9e60d6d37dddfbb93ccaf0154bbbe0f43501a488 [file] [view]
# Simpleperf Fuzzer Scripts
This directory contains scripts and tools for debugging and reproducing issues
found by fuzzers in `simpleperf`.
## Contents
- `repro_fuzz_issue.sh`: A comprehensive script to automate the build, sync,
and execution of the `libsimpleperf_report_fuzzer` on an Android device.
## Prerequisites
Before running any scripts, ensure your environment is set up for Android
platform development:
1. **Initialize the environment:** `bash source build/envsetup.sh`
2. **Select a target:** `bash lunch <your_target>`
3. **Connect a device:** Ensure a device or emulator is connected via ADB.
## Usage: `repro_fuzz_issue.sh`
The `repro_fuzz_issue.sh` script automates the process of building the fuzzer,
pushing the necessary binaries and libraries to the device, and running a
specific test case.
### Running with a test case
To reproduce a crash or issue found by a fuzzer:
```bash
./repro_fuzz_issue.sh /path/to/repro_test_case
```
The script will:
1. Build `libsimpleperf_report_fuzzer` for your current `lunch` target.
2. Create `/data/fuzzer` on the device.
3. Sync the fuzzer binary and its required shared libraries to the device.
4. Push the specific test case to the device.
5. Execute the fuzzer on the device using the provided testcase with the
correct `LD_LIBRARY_PATH`.
### Syncing binaries only
If you want to build and sync the binaries without running a specific test case:
`./repro_fuzz_issue.sh`
## Device Paths
- **Binaries & Libraries:** `/data/fuzzer`
- **Test cases:** `/data/fuzzer/testcase`