2018-04-20 11:41:06 +02:00
|
|
|
# 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](https://github.com/stephenrkell/libdwarfpp), itself depending on
|
|
|
|
- [libcxxfileno](https://github.com/stephenrkell/libcxxfileno)
|
|
|
|
- [libsrk31cxx](https://github.com/stephenrkell/libsrk31cxx)
|
|
|
|
|
|
|
|
These libraries are expected to be installed somewhere your compiler can find
|
|
|
|
them.
|
2018-05-15 18:13:09 +02:00
|
|
|
|
|
|
|
## 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 by `dwarf-assembly`
|