Historically, DOS/Windows IDEs (I'm thinking turbo pascal, turbo C, visual C(++)) had nice integrated debuggers. Click, set a breakpoint, click run until you hit the breakpoint. No friction. Unix, well, the debugger (if it exists) is separate executable, you might need to rebuild everything with the -g flag, you run the debugger, you type in your breakpoint. Every time. Your debugger runs line-by-line with no context. And might screw up your terminal output.
(yeah yeah yeah, I think gdb has a tui mode now and the emacs debugger mode can probably do all that, solve world peace, and cook me an omelet).
I'm lazy, so if I have to do a lot of work to run the debugger, I don't.
First choice is to look at the code and reason it out. Then throw some printfs in. Third time's a charm, so that's when I reach for the debugger.