GitHub - tmcgilchrist/durin: Durin is a library for reading and writing the Dwarf debugging format

Durin is a library for reading and writing the Dwarf debugging format.

It aims to support:

  • Reading DWARF 5 encoded information from ELF and MachO object files.
  • Writing DWARF 5 information into ELF and MachO object files.
  • Writing DWARF 5 information into assembly files.

In future it could support DWARF 4 or newer versions of the DWARF standard.

It should provide:

  • Cross-platform: durin makes no assumptions about what kind of object file you're working with. Provide your own Buffer or use the object library.
  • Lazy: you can iterate compilation units without parsing their contents. Parse only as many debugging information entry (DIE) trees as you iterate over. durin also uses DW_AT_sibling references to avoid parsing a DIE's children to find it's next sibling where possible.

Install

To install durin as a dependency, run:

And add durin to your project's dune-project or *.opam files.

Documentation

  • Documentation on ocaml.org
  • Example programs in example directory

Resources