I'm assuming you mean a software-only debugger, and I mostly feel the same way as you. The process of starting the debugger, setting breakpoints, etc. feels a lot like going to the doctor when you're sick rather than self-diagnosing, which works great 90% of the time and doesn't involve getting into the car and lots of waiting.<p>I could see a strong use for things like multithreading, profiling, seeing a list of variables/values that are in-scope at a breakpoint. The more complex the software, the more useful...<p>The last time I needed a software debugger, a tool I was using would communicate with another by sending its PID as an ID. Problem? The tool thought the PID fit in a 16-bit, so it was sending a totally bogus number. I probably would have found this eventually, but with the debugger, it was as easy as "Why is the sent PID 39283 instead of 170355?" This only occurs after Windows has been on for several weeks and enough conhost/svchost/wslhost processes push new PIDs above 65535.<p>Humorously, such a bug goes away when you "turn the PC off and on again"<p>-----<p>Hardware debuggers (for microcontrollers) often have a whole host of benefits that are immediately obvious once you involve any physical I/O. Also, they're vital for things like event logging (for Arm, PMU events flag for cache misses, branch events, operation stalls, and much more) or seeing what's happening with an off-chip device, peripheral, other cores, anything to do with watchdogs, etc.<p>Writing something like impact failure handlers for a drive head controller for a hard drive, you'll want to be able to set an external trigger as soon as the failure is initiated, connect that to your debugger via one of its trigger-detecting inputs, and then you can capture the real-time data and execution traces and move back to the exact moment the failure occurred, how your variables changed, and what exactly the failure handler did to ensure the drive head attempted to park as soon as possible. In short, this is not printf-able, but it is also an extreme example.