Commit | Line | Data |
---|---|---|
5e0cbfb0 PP |
1 | --- |
2 | id: using-lttng | |
3 | --- | |
4 | ||
5 | Using LTTng involves two main activities: **instrumenting** and | |
6 | **controlling tracing**. | |
7 | ||
8 | _[Instrumenting](#doc-instrumenting)_ is the process of inserting probes | |
9 | into some source code. It can be done manually, by writing tracepoint | |
10 | calls at specific locations in the source code of the program to trace, | |
11 | or more automatically using dynamic probes (address in assembled code, | |
12 | symbol name, function entry/return, etc.). | |
13 | ||
14 | It has to be noted that, as an LTTng user, you may not have to worry | |
15 | about the instrumentation process. Indeed, you may want to trace a | |
16 | program already instrumented. As an example, the Linux kernel is | |
17 | thoroughly instrumented, which is why you can trace it without caring | |
18 | about adding probes. | |
19 | ||
20 | _[Controlling tracing](#doc-controlling-tracing)_ is everything | |
21 | that can be done by the LTTng session daemon, which is controlled using | |
22 | `liblttng-ctl` or its command line utility, `lttng`: creating tracing | |
23 | sessions, listing tracing sessions and events, enabling/disabling | |
24 | events, starting/stopping the tracers, taking snapshots, etc. | |
25 | ||
26 | This chapter is a complete user guide of both activities, | |
27 | with common use cases of LTTng exposed throughout the text. It is | |
28 | assumed that you are familiar with LTTng's concepts (events, channels, | |
29 | domains, tracing sessions) and that you understand the roles of its | |
30 | components (daemons, libraries, command line tools); if not, we invite | |
31 | you to read the [Understanding LTTng](#doc-understanding-lttng) chapter | |
32 | before you begin reading this one. | |
33 | ||
34 | If you're new to LTTng, we suggest that you rather start with the | |
35 | [Getting started](#doc-getting-started) small guide first, then come | |
36 | back here to broaden your knowledge. | |
37 | ||
38 | If you're only interested in tracing the Linux kernel with its current | |
39 | instrumentation, you may skip the | |
40 | [Instrumenting](#doc-instrumenting) section. |