In chapter 5 of \"The Practice of Programming\" Brian Kernighan and Rob Pike write:
As a personal choice, we tend not to use debuggers beyond getting a st
I prefer manualy tracing the code and observing logs to debugger. Debugger turns me into a passive observer and makes harder to view the whole picture.
Program execution has at least one timeline, usually more than one in multithreaded environment. Having an idea what's going on few steps before and what can happen after the current line of execution helps me tracking the bug.