Shouldn't you have a dump of the memory segment, the current values of the registers, the currently executing opcode and the value of the program counter or such?
I'm not sure if Space Invaders has one... but if there is a stack, maybe it is a good idea to implement a size check and garbage collector.

Stacks are mostly used to pass arguments around... and it's easy to overflow a stack if you have a fixed size and the program counter keeps looping at an opcode that keeps pushing things into the stack... mmm.... I actually had that once, and I thought my stack implementation was wrong because there were some games that would loop at a wait opcode forever until something is run.
__________________
cChip interpreter WIP - current status: Release Candidate
LRx Filter RC - current performance rating: 9/10