How to monitor variables not using the serial?

Don't tell anyone I told you this but you could do a print from an interrupt routine.

So nobody knows who to blame when things go to hell?

Printing from an ISR is not a good idea, because you have no way of knowing whether the buffer you are writing to is nearly full, so you don't know whether there is room for what you plan to write. If there isn't, the underlying write() method will simply wait until there is room. No room will ever be made, of course, since making room relies on interrupts firing, which doesn't happen when an ISR is running.

Printing in an ISR wouldn't help OP anyway.