Item 38: Review and Manually Execute Suspect CodeThings to RememberItem 39: Go Over Your Code and Reasoning with a ColleagueThings to RememberItem 40: Add Debugging FunctionalityThings to RememberItem 41: Add Logging StatementsThings to RememberItem 42: Use Unit TestsThings to RememberItem 43: Use AssertionsThings to RememberItem 44: Verify Your Reasoning by Perturbing the Debugged ProgramThings to RememberItem 45: Minimize the Differences between a Working Example and the Failing CodeThings to RememberItem 46: Simplify the Suspect CodeThings to RememberItem 47: Consider Rewriting the Suspect Code in Another LanguageThings to RememberItem 48: Improve the Suspect Code’s Readability and StructureThings to RememberItem 49: Fix the Bug’s Cause, Rather Than Its SymptomThings to Remember