Update quickstart, describing syscall events
[lttng-tools.git] / doc / quickstart.txt
... / ...
CommitLineData
1NOTES:
2--------------
32011-07-21 : User-space tracer is not released. Tracing in user-space at this
4point is not possible with lttng-tools.
5
6QUICKSTART
7--------------
8
9This is a quick start guide for the complete LTTng tool chain. This is divided
10in three sections respectively kernel tracing, user-space tracing and reading a
11trace.
12
13See the README file for installation procedure or use the various Linux
14distribution packages.
15
16In order to trace the kernel, you'll need the lttng-modules >= 2.0 compiled and
17installed. See http://lttng.org/lttng2.0 for more instructions for that part.
18For user-space tracing, you'll need an instrumented application, please see
19http://lttng.org/ust.
20
21lttng-tools provide a session daemon (ltt-sessiond) that acts as a tracing
22registry. To trace any instrumented applications or the kernel, a registered
23tracing session is needed beforehand. To interact with the session daemon and a
24tracing session, you should use the lttng command line UI (lttng).
25
26Here is a list of some powerful features the LTTng 2.0 kernel tracer offers:
27
28 * Kprobes support
29 * Function Tracer support
30 * Context information support (add context data to an event)
31 * Perf counter support
32 * Tracepoint support
33
34The next sections explain how to do tracing :)
35
36Kernel Tracing
37--------------
38
39You can start the session daemon by invoking the command "ltt-sessiond",
40or let the lttng command line tool do it for you. The session daemon
41loads the LTTng tracer modules for you if those modules can be found on
42your system. If they are not found, the kernel tracing feature will be
43unavailable.
44
45List available kernel events:
46
47# lttng list -k
48
491) Create a tracing session. A .lttngrc will be created in $HOME containing
50the session name (here 'mysession') you are working on.
51
52# lttng create mysession
53
54If you have multiple sessions, you can change the current session by using
55
56# lttng set-session myothersession
57
582) Enable tracepoint event(s). Here for example, we want only
59'sched_switch' and 'sched_wakeup' events for the kernel (-k/--kernel).
60
61# lttng enable-event sched_switch,sched_wakeup -k
62
63or enable ALL tracepoint events (-a/--all):
64
65# lttng enable-event -a -k
66
673) Enable all system call event(s).
68
69# lttng enable-event -a -k --syscall
70
714) Enable kprobes and/or the function tracer with lttng
72
73This is a new feature made possible by the new LTTng 2.0 kernel tracer. You can
74enable a dynamic probe and data will be output in the trace along side with
75your tracing data.
76
77# lttng enable-event aname -k --probe symbol+0xffff7260695
78
79or
80
81# lttng enable-event aname -k --probe 0xffff7260695
82
83Either an <address> or a <symbol+offset> can be used for probes.
84
85You can also enable function tracer, which uses the Ftrace API (by Steven
86Rostedt). Again, data will be output in the trace.
87
88# lttng enable-event aname -k --function <symbol_name>
89
905) Enable context information for an event:
91
92This is also a new feature which allows you to add context information to an
93event. For example, you can add the PID along with the event information:
94
95# lttng add-context -k -e sched_switch -t pid
96
97At this point, you will have to look at 'lttng add-context --help' for all
98possible context type which are integer values.
99
100You can on the same line activate multiple context:
101
102# lttng add-context -k -e sched_switch -t pid -t nice -t tid
103
1046) Enable perf counter for an event:
105
106Again, a new powerful feature is the possibility to add perf counter data
107(using the perf API by Ingo Molnar and Thomas Gleixner) to the trace on a per
108event basis. Let say we want to get the CPU cycles at each event:
109
110# lttng add-context -k -e sched_switch -t perf:cpu-cycles
111
112You'll have to use the add-context help for all possible perf counter values.
113
1147) Start tracing:
115
116# lttng start
117
118Tracing is in progress at this point and traces will be written in
119$HOME/lttng-traces/mysession-<date>-<time>
120
1218) Stop tracing:
122
123# lttng stop
124
125Note: At this point, you can restart the trace (lttng start), enable/disable
126events or just go take a break and come back 3 days later to start it again :).
127
1289) Destroy your session after you are done with tracing
129
130# lttng destroy
131
132See Reading a trace section below to read you trace(s).
133
134User-space Tracing
135--------------
136
137User-space tracer 2.0 not released at this point. For the 0.x versions,
138you need to use 'ustctl' to control user-space tracing.
139
140Reading a trace
141--------------
142
143The tool "Babeltrace" can be used to dump your binary trace into a
144human-readable text format. Please see
145http://www.efficios.com/babeltrace and git tree
146http://git.efficios.com/?p=babeltrace.git
147
148# babeltrace -n $HOME/lttng-traces/mysession-<date>-<time> | less
149
150VoilĂ !
151
152Please report any bugs/comments on our mailing list
153(ltt-dev@lists.casi.polymtl.ca) or you can go on our IRC channel at
154irc.oftc.net, channel #lttng
This page took 0.022534 seconds and 4 git commands to generate.