[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)