zidel an hour ago

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 44 minutes ago

    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!

vlovich123 3 hours ago

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 an hour ago

    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.

iou 3 hours ago

I sure hope there’s an anti-debug framework called Durin’s Bane?

  • ModernMech 24 minutes ago

    I hope if you use it in late Ocotober when the moon is out, it opens the CD tray... for those who still have one.

wavemode 3 hours ago

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 an hour ago

    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.