You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
7 months ago
|
---
|
||
|
layout: default
|
||
|
title: Debugging
|
||
|
parent: Advanced topics
|
||
|
nav_order: 4
|
||
|
permalink: /advanced-topics/debugging/
|
||
|
---
|
||
|
|
||
|
# Debugging issues
|
||
|
{: .no_toc}
|
||
|
|
||
|
- TOC
|
||
|
{:toc}
|
||
|
---
|
||
|
|
||
|
## Debugging build scripts
|
||
|
|
||
|
While developing your build script, it may be useful to run bash within the
|
||
|
container:
|
||
|
|
||
|
```bash
|
||
|
$ python infra/helper.py shell $PROJECT_NAME # runs /bin/bash within container
|
||
|
$ compile # runs compilation manually
|
||
|
```
|
||
|
|
||
|
## Debugging fuzzers with GDB
|
||
|
|
||
|
If you wish to debug a fuzz target with gdb, you can use the base-runner-debug
|
||
|
image:
|
||
|
|
||
|
```bash
|
||
|
# Copy input testcase into host output directory so it can be accessed
|
||
|
# within the Docker image.
|
||
|
$ cp /path/to/testcase build/out/$PROJECT_NAME
|
||
|
|
||
|
# Run the Docker image containing GDB.
|
||
|
$ python infra/helper.py shell base-runner-debug
|
||
|
$ gdb --args /out/$PROJECT_NAME/$FUZZ_TARGET_NAME /out/$PROJECT_NAME/testcase
|
||
|
```
|
||
|
|
||
|
**Note:** The `base-runner-debug` image does not have access to your sources, so
|
||
|
you will not be able to do source code level debugging. We recommend integrating
|
||
|
your fuzz target upstream as part of
|
||
|
[ideal integration]({{ site.baseurl }}/advanced-topics/ideal-integration/)
|
||
|
for debugging purposes.
|