Patent ID: 8312435

Claim:
A method of tracing the execution of a computer program comprising: generating trace control information which specifies triggers and associated actions; attaching a client-side trace library to a memory image of a program, wherein attaching to the memory image comprises replacing, based on the trace control information, one or more original instructions of the memory image with debugging instructions, thereby causing the debugging instructions to be executed where the original instructions would have been executed; maintaining the one or more original instructions in a separate data structure, thereby enabling the functionality of the application to be preserved; tracing execution of the computer program according to the trace control information, wherein tracing execution of the computer program comprises executing a first instrumented instruction associated with a first trigger, the first trigger being associated in the trace control information with a first condition, and further comprises branching to the client-side trace library to perform an action associated with the first instrumented instruction in the trace control information; and generating a trace log of said tracing, wherein the trace log reflects said actions performed during tracing; wherein performing the action associated with the first instrumented instruction comprises modifying a tracing action associated with a second instrumented instruction based upon determining that the first trigger has occurred, and further based upon determining that a condition associated with the first trigger is satisfied.