The Art of Debugging
Too Long; Didn't Read
Software Engineers are often more concerned about fixing bugs than developing novel features. If a bug exists, even if you are not experiencing it, it implies that something is definitely off with the code. Go back in the history of the issue and gather historical information about the issue. Add logs to the code at various locations before and after every function call. For passive debugging, we use logging when the bug cannot be reproduced, so we cannot run through the execution steps. When working on a problem, speaking aloud to yourself might occasionally disclose blind spots.