update roadmap
[lttv.git] / trunk / lttv / doc / developer / ust.txt
CommitLineData
d4c85b6e 1LTTng User-space Tracing Design
2
3A user-space application may contain static instrumentation, and be linked with
4an associated runtime library, in order to produce an execution trace. User
5space Tracepoints and Markers, analogous to Kernel Tracepoints and Markers,
6define program locations and arguments provided. Probes may then be connected to
7each Tracepoint and Marker before they are activated. The probes will typically
8call LTTng user-space event writing functions.
9
10When the instrumented application starts, a pipe is opened to allow external
11tracing control, asynchronous notification is requested when commands arrive in
9a192a69 12the pipe, and a signal handler is installed for SIGIO (or a carefully chosen
13chainable signal number). Every time such signal is received, the runtime
14library checks for commands received on the external tracing control pipe. The
15recognized commands are:
d4c85b6e 16
17- list the available Markers and Tracepoints;
18- dynamically load a library (presumably containing probes to connect);
19- connect a probe to a Tracepoint or Marker;
20- activate a Tracepoint or Marker;
21- initialize the tracing buffers;
22- flush the tracing buffers;
23- finalize the tracing buffers;
24
25The application may also spontaneously provide information to the pipe:
26
27- a buffer is full;
28- new tracepoints or markers are appearing or disappearing, because modules are
29 dynamically loaded or unloaded;
30
31In addition, the tracing control application should be notified when the
32application exits (to save the content of buffers if the application is
33crashing). Such notification may be obtained through utrace.
This page took 0.022954 seconds and 4 git commands to generate.