On the contrary, I find a common debugger (see questions below) an underwhelming experience, not a powerful tool.
Can it:
- assign (scenario, subsystem, level, description) to breakpoints and watches, so they can be turned on/off or selected in groups for debugging without removal?
- commit these scenarios of bps and watches into a repository?
- edit/read them in a textual form to patch or share over an IM?
- store traces of previous sessions and diff them to find out what changed?
Does anything even remotely similar exist? Most debuggers are just test-pause-and-inspect tools with “integration” in the form of eval on mouse hover. Their ux and dx sucks and the only reason I could find to use them were slow build times and too low-level runtimes, which are no more today.
Pretty sure most people avoid debuggers not because they are too hard to learn (they aren’t), but because they are too dumb to be useful, given that you can ‘if (cond) log.level(…)’ and restart instantly.