The limitation in this method of debugging any interrupt based firmware is that the debug environment is not real-time. Whereas the firmware will be running in real-time. So the interrupt may not get serviced or reach completion in time since the firmware is being stepped through or held at a particular line (to analyze the variables). Hence the process based on the interrupt may fail though it would have succeeded if the firmware was running in real-time. The debugger is a good tool for debugging code flow but may not be as useful when working with interrupts.