Some experiments around compiling the most used Dwarf information (ELF debug data) directly into assembly.
Théophile Bastian
310a348bce
Before, the space between FDEs was abstracted away, thought as dead space that produced an error when queried. This is not the case, though: empty FDEs indicate undefined DWARF |
||
---|---|---|
benching | ||
env | ||
shared | ||
src | ||
stack_walker | ||
stack_walker_libunwind | ||
tests | ||
.gitignore | ||
compare_sizes.py | ||
extract_pc.py | ||
generate_eh_elf.py | ||
LICENSE | ||
Makefile | ||
README.md | ||
shared_python.py |
Dwarf Assembly
Some experiments around compiling the most used Dwarf informations (ELF debug data) directly into assembly.
This project is a big work in progress, don't expect anything to be stable for now.
Dependencies
As of now, this project relies on the following libraries:
- libelf
- libdwarf
- libdwarfpp, itself depending on
These libraries are expected to be installed somewhere your compiler can find them.
Scripts and directories
./generate_eh_elf.py
: generate.eh_elf.so
files for a binary (and its dependencies if required)./compare_sizes.py
: compare the sizes of the.eh_frame
of a binary (and its dependencies) with the sizes of the.text
of the generated ELFs../extract_pc.py
: extracts a list of valid program counters of an ELF and produce a file as read bydwarf-assembly