Debugging

That's a super clever idea robocarp. Just attach a momentary switch to one of the interrupt pins (digital pins 2 or 3) and dump all of your variables out on the serial from the interrupt function. This solution won't halt the execution of the code, but will give you a good idea of the state of your variables. This would probably reduce your program size during development because you don't have to have all those serial.println statements either. The only disadvantages I can see would be the sacrifice of one digital pin, and a bit of code space for the interrupt function.
Are there any constraints on interrupts? Will it activate during a delay call, or will it wait until the delay is complete? What about if an interrupt is called inside of another interrupt? Has anyone run into any instances where an interrupt will not execute, like getting bogged down in a recursive loop or something?
I'm going to experiment with this idea a bit, and I'll post my results.