(I say this in jest, but only a little.) Think about it...
I know so many programmers who get lazy because they have such good debugging tools (Let me just slam something out there and let the debugger catch it.) I hate this.
If we developers would slow down and think a little more about what we're building, we may find a dramatically decreased need for debugging.
Variable local or global? Right variable name? Should that be a function? How much am I repeating myself? How should the data be structured for its intended uses? What's the best way to handle recursion? Where might memory leak? Where's the best place to do this? Which is the best technology for this need? And most of all: Will the next programmer be able to read this and tell what it's doing before they break it?
Slow down. Plan more. Think deeper. Debug less.