This project was completed as part of my MQP at the WPI Cake Lab in collaboration with Professor Robert J Walls and Professor Gary Pollice.
Key Features • How To Use • Install • Credits • License
- Reproducibility
- Ability to share completed graphs
- Ability to add in-code annotations to serve as documentation
- Ability to open up a gdb shell on any event during the program's last execution
To use this program, first record an execution of a program and then explore it.
gcc -g3 examples/simple/simple.c -o examples/simple/a.out
./explorant.sh record -e examples/simple/a.out -s examples/simple/recording
./explorant.sh explore examples/simple/recording
This will pop open Explorant:
This project is not yet bundled with any major package manager. For now, you must install from source.
Ubuntu: Install dependencies:
sudo apt-get install ccache cmake make g++-multilib gdb \
pkg-config coreutils python3-pexpect manpages-dev git \
ninja-build capnproto libcapnp-dev zlib1g-dev
Efficient recording requires use of the perf counters. You must enable them temporarily by:
sudo sysctl kernel.perf_event_paranoid=1
Or permenantly by:
echo 'kernel.perf_event_paranoid=1' | sudo tee '/etc/sysctl.d/51-enable-perf-events.conf'
Install docker: instructions
Install the rust toolchain: instructions
Download and build Explorant:
git clone https://github.com/zaporter/Explorant
cd Explorant
./docker_perms.sh
./explorant.sh --help
- Robert J Walls For his passion, knowledge, and devotion to this project
- Gary F Pollice For his insights, advice, and general assistance
- rr For making this project possible with their incredible tool
- synoptic For graph simplification
- gimli For reading DWARF files
- Sourceware For their excellent documentation of the GDB remote serial protocol
- DallE For the logo
- Markdownify For their beautiful readme
MIT