Patent attributes
A portable tracing utility provides trace configuration, trace instrumentation and trace management functionality for single or multithreaded programs. Through various application programming interfaces (“APIs”) of the tracing utility, a client may control tracing behavior to setup in-memory data structures for storing trace records that record the program's history of execution or to alter the granularity of execution history being traced. The trace behavior can be modified during the life of a program by using the APIs, either dynamically when the program assumes certain states, or through remote procedure calls issued by, for example, an external interface. Programs are instrumented with these APIs to record the history of execution, which during execution of the program is stored in circular in-memory buffers.