[HN Gopher] Durin is a library for reading and writing the Dwarf...
___________________________________________________________________
Durin is a library for reading and writing the Dwarf debugging
format
Author : mooreds
Score : 34 points
Date : 2025-12-01 18:35 UTC (4 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| iou wrote:
| I sure hope there's an anti-debug framework called Durin's Bane?
| vlovich123 wrote:
| How does this compare with gimli-rs? Last I checked it was the
| absolute leader in performance.
|
| https://github.com/gimli-rs/gimli
| lambda_foo wrote:
| Author here, a bit cringe to see your WIP project posted here.
|
| My motivation for writing this from scratch is to
| simultaneously understand DWARF 5 in all its gory details,
| develop tooling to support my work on the OCaml compiler, and
| to build a source debugger in OCaml. The performance or lack of
| isn't a focus right now, I'm sure it doesn't compare to gimli-
| rs for performance but it does fully support DWARF 5 which
| gimli-rs doesn't (missing debug_info section support
| https://github.com/gimli-rs/gimli/pull/807).
|
| Currently I'm working on the read support, and various bits of
| tooling around understanding Call Frame Information and
| simulating the DWARF expression evaluation. I'm unhappy with
| the tooling GDB/LLDB provide for displaying and debugging this
| information, I've personally spent far too much time staring at
| CFI expressions and walking memory looking for where it goes
| wrong. In the OCaml compiler we have few people that understand
| or work on this area.
| wavemode wrote:
| Several of the examples seem to be empty (e.g.
| https://github.com/tmcgilchrist/durin/blob/master/example/dw...)
|
| Also, the link to OPAM documentation leads to a 404
| lambda_foo wrote:
| It is heavily WIP at the moment so I haven't published to opam
| just yet. You'll need to compile from source if you want to try
| it out. I'm filling in examples as I need them and publishing
| code when it isn't too terrible to look at.
| zidel wrote:
| One interesting thing about the dwarf format is that it is
| executable and Turing complete, running small programs on a
| virtual machine to figure out file names, line numbers and
| exception handling.
| lambda_foo wrote:
| It's really fascinating the different little evaluators that
| exist in DWARF. I started writing one for the DWARF expression
| format (https://github.com/tmcgilchrist/durin/pull/7) that I'm
| integrating with a debugger and free-monad/effect handler style
| code to lookup the missing data to provide for the Requires*
| callbacks.
|
| Then there is the line number evaluation, which I haven't
| started on.
|
| Building a Debugger by Sy Brand (https://nostarch.com/building-
| a-debugger) is an awesome book if you want to learn more about
| this. It covers DWARF 4 and you build a full debugger in C++17
| for Linux/x86_64. Can't recommend that book highly enough!
___________________________________________________________________
(page generated 2025-12-01 23:00 UTC)