1. Apparatus for debugging a program used in a computer having a memory and a register, said program including a plurality of executable instructions each characterized as either a recordable or a non-recordable instruction, said apparatus comprising: user interface means for accepting a command from a user; event history recording means for recording from said program an event history of events occurring while said program is executed, each event corresponding to a recordable instruction, but not to a non-recordable instruction; program behavior reproducing means for controlling the behavior of said program in accordance with said event history to reexecute a portion of said program; instruction execution history recording means for recording an instruction execution history encompassing executable instructions which are executed when said portion of said program is reexecuted, said instruction execution history including, for each such instruction, contents of said memory and contents of said register before each such instruction is executed; and instruction execution history reproducing means for selectively performing a back track operation for recovering an internal state of said computer to a state, obtained prior to execution of at least one of said executable instructions, in accordance with said instruction execution history, and for selectively performing a second reexecution in accordance with said command accepted by said user interface means.