Patent ID: 7950002

Claim:
A method for testing a software product, comprising: encountering a probe point in the software product; transferring execution to a system kernel upon encountering the probe point; calling, by the system kernel, a probe handler to execute a probe routine having instructions; and executing, by the probe handler, the probe routine, the executing comprising: creating a single step state stack, and sequentially and repetitively: identifying probe state data to be protected; disabling interrupts; writing the probe state data to the single step state stack; enabling interrupts; restoring a probe state according to the probe state data in the single step state stack; and single-stepping a probe instruction; until the instructions in the probe are completed; wherein the testing can further comprises executing one or more additional probe routines, each execution including creating a respective single step state stack; wherein all of the additional probe routines can be interrupted, by using the respective single step state stack for each additional probe routine, and wherein the single step state stack comprises a fixed-size last-in-first-out (LIFO) stack data structure and a top-of-stack pointer.