1. A data processing system, comprising: a storage system; first logic, coupled to the storage system and to a unit under test comprising a heap memory, a static memory and a stack, wherein the first logic when executed is operable to interface to the heap memory and static memory; second logic which when executed is operable to perform: detecting one or more changes in a first state of the heap memory and the static memory; storing, in the storage system, as a state point of the unit under test, the one or more changes in the first state of the heap memory and the static memory; third logic which when executed is operable to perform: receiving a request to change the memory under test to a particular state point; in response to the request, loading the particular state point from the storage system and applying the state point to the heap memory and the static memory to result in changing the heap memory and the static memory to a second state that is substantially equivalent to the first state.