A 
software system is disclosed which facilitates the process of tracing the execution paths of a program, called the 
client. The tracing is performed without requiring modifications to the 
executable or 
source code files of the 
client. Trace data collected during the tracing operation is collected according to instructions in a trace options file. At run time, the tracing 
library attaches to the memory image of the 
client. The tracing 
library is configured to monitor execution of the client and to collect trace data, based on selections in the trace options file. Conditional tracing, through the use of triggers and actions taken in response to the triggers, allows the developer to control the tracing operation. The triggers can be conditional triggers in which the corresponding action is taken only if a 
conditional expression is satisfied. The 
system can trace multiple threads and multiple processes. The tracing 
system provides a remote mode and an online mode. In remote mode, the developer sends the trace control information (which can include triggers and corresponding actions) to a remote user site together with a small 
executable image called the agent that enables a remote customer, to generate a 
trace file that represents execution of the client application at the remote site. In online mode, the developer can generate trace options (including triggers and corresponding actions), run and trace the client, and display the trace results in near real-time on the display screen during execution of the client program.