A method for tracing an instrumented program using a thread, including
transferring control of the instrumented program to a trap handler to
obtain an original instruction associated with a probe, loading the
original instruction into a scratch space, setting a program counter to
point to the scratch space, setting a next program counter to point to a
next instruction, and executing the original instruction in the scratch
space using the thread, wherein executing the original instruction
results in placing the instrumented program in a state equivalent to
natively executing the original instruction.