Interesting.
My experience is the opposite:  I see developers waste hours stepping through their code a line at a time when a few judiciously placed logs (printfs() are fine, but we can do better) would have told them exactly what they needed in a jiffy.
If you have a fairly shallow bug, that is a single point in your code that always behaves incorrectly, then I find debuggers reasonably effective.
But most of the bugs that I see aren't that shallow, with code misbehaving when the context is just so and perfectly fine otherwise.  In those cases, I need to see lots of different invocations and their context.  The debugger is like trying to drink the information ocean I need through a straw.  A mostly plugged straw.
I wonder what makes our experiences so different?  Do you unit test a lot?  Particularly with TDD?  I am guessing that this practice means I just don't get to see a lot of the bugs that a debugger would help me with.
(And it doesn't mean I never fire up the debugger.  But it is fairly rare).