Jim Calabro's Avatar
Jim Calabro
Personal Site
GitHub
Member since

Recent Activity

Hey all! I'd mentioned this to some folks in person at Handmade Boston, but this might be my first time sharing this project in this Discord, but I've been working for a while on a from-scratch graphical Linux debugger for ELF/DWARF binaries

It doesn't depend on GDB/LLDB/DAP/libunwind/any libraries at all related to debuggers; its only dependencies at the moment are glfw and dear imgui

Currently, it only supports C and Zig, but over time I do intend to support pretty much any popular and/or handmade language that compiles naively

Here's a quick demo to show you what it looks like. It's got a bunch of features you'd expect from a debugger like:

  • Loading debug symbols and running a child process
  • Setting/enabling/disabling/unsetting breakpoints
  • Stepping in/out/over/singe-step, continue execution, kill the subprocess, all other normal program control mechanisms
  • Displaying stdout/stderr from the child
  • Unwinding the call stack
  • Displaying local/watch variables
  • Displaying registers
  • Hex viewer for memory addresses

There's still a ton to do! I love talking about debuggers and other stuff, so if you have questions reach out

(re-posted with an mp4 rather than mkv)

View original message on Discord

&how-dwarf-works This is a pretty long post that gets in to a lot of detail on parsing the .debug_info section for ELF/DWARF binaries. As always please send me feedback/errata/questions, I love talking debuggers!

This is going to be my final post for the jam, thanks for putting this on, it was a lot of fun to buckle down and make some forward progress on a project, then actually share it! ❣️

https://www.calabro.io/dwarf/die

View original message on Discord

&how-dwarf-works The new site is live, along with the series introduction, the first meaty post on parsing ELF files, and an appendix for code samples! Let me know if you're having issues, I just deployed it a minute ago. Please also reach out with errata, questions, clarifications, etc. 😄

Next post starts on parsing actual DWARF info (we're going to parse DIEs and related info first)

https://calabro.io

View original message on Discord

&how-dwarf-works I don't have a link to share yet since it hasn't been deployed to the wild yet, but I re-did my personal blog today and wrote the first post in an entry in the "How DWARF Works" series. Next up is "how do you parse just enough ELF to get all the DWARF data you want"

View original message on Discord