Start with one expected event: a function should run, a pin should change, or a byte should arrive. Then choose one observation that tells you whether that event happened.
A breakpoint can show whether execution reaches a line. A spare GPIO can mark a section of code for measurement. A serial message can reveal a state transition. Each observation changes the system a little, especially its timing, so keep the instrumentation focused.
Record what you expected, what you saw, and the next thing to check. A good debugging session leaves behind an explanation you can use again.