Vimspector – the Vim debugger rules all
puremourning.github.io
puremourning.github.io
It is a UI around DAP: https://github.com/puremourning/vimspector#what-vimspector-i...
In fact even GDB added DAP support recently: https://www.phoronix.com/news/GDB-Debug-Adapter-Protocol
It's a bit of a pity they decided to use it do debug vim itself in all the examples. Given the title and this quote, it took me at least 5 mintues of re-reading to convince myself with 97% certainty that it can, in fact, debug other programs.
I feel like I'm wandering around too much in all of these debuggers and can't seem to use them to drill down effectively but I haven't really been able to conceptualize what I'd change.
It's like I want a higher level organizational abstraction. The number of moving pieces seems to exhaust my personal working memory for really challenging problems and I quickly get disorganized with all the watches and breakpoints. Maybe there's opportunities for an AI debugging assistant.
There are a few exceptions: Common Lisp has a best-in-class debugger in Emacs thanks to João Távora, and same for Racket thanks to Greg Hendershott. I wish I could say GNU guile has a good debugging support in GNU emacs, but that is sadly not the case.
I'm one of those. A happy user of IDEs for a decade, but after trying and embracing vim/nvim all the IDEs now feel slow, bloated and clunky. Even with vim/nvim plugins.
If I cannot automate it then it is useless.
It's weird, because I used to work as a .Net developer, using Visual Studio, but I completely forgot how efficient is it to just be able to set a break point.
That's just not true. Plenty of game developers use old tools as well, with the exact same argument of "it makes my life easier"
There's not even a nugget of truth to this statement, it's just generalization nonsense.
Most debuggers have vastly more functionality than this.
For vanilla use-cases, the debugger on Visual Studio or Jetbrains IDEs may have more features and better usability.
I think some even support reverse debugging or time travel (rr-like), memory watchpoints, etc.
Pause execution when some memory is read or written to = watchpoint.
For reverse engineering you've got OllyDbg clones like edb or x64dbg and others.
And there is the underworld of gdb custom scripts that is really interesting looking into. gdb tui too.