Durin is a library for reading and writing the Dwarf debugging format
1–10 of 22 posts
Re: Durin is a library for reading and writing the Dwarf debugging format
#2Re: Durin is a library for reading and writing the Dwarf debugging format
#3Re: Durin is a library for reading and writing the Dwarf debugging format
#4Also, the link to OPAM documentation leads to a 404
Re: Durin is a library for reading and writing the Dwarf debugging format
#5How does this compare with gimli-rs? Last I checked it was the absolute leader in performance. https://github.com/gimli-rs/gimli
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.
Re: Durin is a library for reading and writing the Dwarf debugging format
#6Re: Durin is a library for reading and writing the Dwarf debugging format
#7Several 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
Re: Durin is a library for reading and writing the Dwarf debugging format
#8One 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.
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!
Re: Durin is a library for reading and writing the Dwarf debugging format
#9One 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.
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…
Re: Durin is a library for reading and writing the Dwarf debugging format
#10I sure hope there’s an anti-debug framework called Durin’s Bane?