1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286
|
// Render with Asciidoctor
:nbh: ‑
:lt: LTTng{nbh}tools
:lib: liblttng{nbh}ctl
ifdef::env-github[]
:toc: macro
endif::env-github[]
ifndef::env-github[]
:toc: left
endif::env-github[]
= {lt}
5 May 2020
[.normal]
https://ci.lttng.org/job/lttng-tools_master_linuxbuild/[image:https://img.shields.io/jenkins/build.svg?jobUrl=https://ci.lttng.org/job/lttng-tools_master_linuxbuild/[Jenkins, title="Jenkins"]]
https://scan.coverity.com/projects/lttng-tools[image:https://img.shields.io/coverity/scan/lttng-tools.svg[Coverity, title="Coverity"]]
[.lead]
_**{lt}**_ is a set of components to control https://lttng.org/[LTTng]
tracing.
The project includes:
* The LTTng https://lttng.org/man/8/lttng-sessiond/[session daemon].
* The LTTng consumer daemon.
* The LTTng https://lttng.org/man/8/lttng-relayd/[relay daemon].
* {lib}, a library with a C{nbsp}API used to communicate with
the session daemon.
* Python{nbsp}3 bindings of liblttng{nbh}ctl.
* https://lttng.org/man/1/lttng/[`lttng`], a command-line tool over
{lib}.
* https://lttng.org/man/1/lttng-crash/[`lttng{nbh}crash`], a command-line
tool to recover and view LTTng{nbsp}2 trace buffers in the event of a
crash.
ifdef::env-github[]
toc::[]
endif::env-github[]
== Required and optional dependencies
You need the following dependencies to build and run the {lt}
components:
* **Linux kernel{nbsp}≥{nbsp}4.4.0**
* **http://www.liburcu.org/[Userspace{nbsp}RCU]{nbsp}≥{nbsp}0.14.0**.
+
Debian/Ubuntu package: `liburcu{nbh}dev`.
* **popt{nbsp}≥{nbsp}1.13**
+
Debian/Ubuntu package: `libpopt{nbh}dev`.
* **http://xmlsoft.org/[Libxml2]{nbsp}≥{nbsp}2.7.6**
+
Debian/Ubuntu package: `libxml2{nbh}dev`
The following dependencies are optional:
* **https://babeltrace.org/[Babeltrace{nbsp}≥{nbsp}2.1]**: default
viewer of the https://lttng.org/man/1/lttng-view/[`lttng view`]
command, `make{nbsp}check` and tests.
+
Debian/Ubuntu package: `babeltrace2 libbabeltrace2-dev`
* **https://lttng.org/[LTTng{nbh}UST]** (same minor version as {lt}):
LTTng user space tracing (applications and libraries).
+
Debian/Ubuntu package: `liblttng{nbh}ust{nbh}dev`
* **https://www.python.org/[Python]{nbsp}≥{nbsp}3.5**:
`make{nbsp}check` and tests.
+
Debian/Ubuntu package: `python3`
* **http://www.swig.org/[SWIG]{nbsp}≥{nbsp}2.0** and
**Python{nbsp}3 development headers**: Python bindings
(enabled at <<configure,build configuration>> time with the
`{nbh}{nbh}enable{nbh}python{nbh}bindings` option).
+
Debian/Ubuntu packages: `swig2.0` and `python3{nbh}dev`
* **modprobe** and/or
**https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/[kmod]{nbsp}≥{nbsp}22**:
automatic LTTng kernel modules loading (kernel tracing).
* **Bash**: `make{nbsp}check`.
* **http://man7.org/linux/man-pages/man1/man.1.html[`man`]**
(manual pager): view `lttng` command manual
pages with the `{nbh}{nbh}help` option or with the
https://lttng.org/man/1/lttng-help/[`lttng{nbsp}help`] command.
+
NOTE: You can use the <<configure,build configuration>> option
`{nbh}{nbh}enable{nbh}embedded{nbh}help` to embed the manual pages into
the `lttng`, `lttng{nbh}sessiond`, `lttng{nbh}relayd`, and
`lttng{nbh}crash` programs so that you don't need `man` to view them.
* **http://perfmon2.sourceforge.net/[libpfm]{nbsp}≥{nbsp}4.0**:
perf regression test suite.
+
Debian/Ubuntu package: `libpfm4-dev`
* **xxd**: `make{nbsp}check` and certain tests.
+
Debian/Ubuntu package: `xxd`
* **lcov**: `make{nbsp}check-code-coverage`
+
Debian/Ubuntu package: `lcov`
{lt} supports both the LTTng Linux kernel tracer and LTTng user space
tracer sharing the same _minor_ version. While some minor releases do
not change the tracer ABIs and _could_ work, no testing is performed to
ensure that cross-version compatibility is maintained.
You don't need to rebuild or modify applications instrumented with older
versions of the LTTng{nbh}UST project to make them work with the
components of the latest {lt} release.
See the https://lttng.org/docs/[LTTng Documentation] for more
information on versioning.
== Build from source
=== Dependencies
You need the following tools to build {lt}:
* **https://www.gnu.org/software/automake/manual/html_node/Autotools-Introduction.html[GNU{nbsp}Autotools]**
(**Automake{nbsp}≥{nbsp}1.12**,
**Autoconf{nbsp}≥{nbsp}2.64**, and **Autoheader{nbsp}≥{nbsp}2.50**)
* **http://www.gnu.org/software/autoconf/[GNU{nbsp}Libtool]{nbsp}≥{nbsp}2.2**
* **https://www.gnu.org/software/make/[GNU{nbsp}Make]**
* **https://github.com/westes/flex/[Flex]{nbsp}≥{nbsp}2.5.35**
* **https://www.gnu.org/software/bison/[Bison]{nbsp}≥{nbsp}2.4**
* **https://www.freedesktop.org/wiki/Software/pkg-config/[pkg{nbh}config]** or similiar drop-in replacement
To build the {lt} manual pages:
* **https://asciidoc.org/[AsciiDoc]{nbsp}≥{nbsp}8.4.5**
+
NOTE: Previous versions could work, but were not tested.
* **https://pagure.io/xmlto[xmlto]{nbsp}≥{nbsp}0.0.21**
+
NOTE: Previous versions could work, but were not tested.
If you use GNU{nbsp}gold, which is _not_ mandatory:
* **GNU{nbsp}gold{nbsp}≥{nbsp}2.22**
NOTE: With GNU{nbsp}gold, you might need to add
`-L/usr/local/lib` to the `LDFLAGS` environment variable.
=== Build steps
. **If you have the {lt} Git source**, run:
+
----
$ ./bootstrap
----
+
This script creates the `configure` script.
. [[configure]]Configure the build:
+
--
----
$ ./configure
----
If you want the {lib} Python bindings, use the
`{nbh}{nbh}enable{nbh}python{nbh}bindings` option. See also the `PYTHON`
and `PYTHON_CONFIG` environment variables in
`./configure{nbsp}{nbh}{nbh}help`.
If you don't want to build the manual pages, use the
`{nbh}{nbh}disable{nbh}man{nbh}pages` option.
If you want to embed the manual pages into the `lttng`,
`lttng{nbh}sessiond`, `lttng{nbh}relayd`, and `lttng{nbh}crash` programs
so that you don't need `man` to view them, use the
`{nbh}{nbh}enable{nbh}embedded{nbh}help` option.
This build configuration script finds LTTng{nbh}UST with
https://www.freedesktop.org/wiki/Software/pkg-config/[pkg{nbh}config]:
set the `PKG_CONFIG_PATH` environment variable accordingly if
pkg{nbh}config cannot find the `lttng{nbh}ust` package information.
See `./configure{nbsp}{nbh}{nbh}help` for the complete list of options.
--
. Build the project:
+
----
$ make
----
. Install the project:
+
----
$ sudo make install
$ sudo ldconfig
----
== Tests
To run all the tests:
----
$ make check
----
== Usage
See the https://lttng.org/docs/#doc-controlling-tracing[Tracing control]
section of the LTTng Documentation to learn how to use the {lt}
components.
See also the https://lttng.org/man/[LTTng manual pages] (all
section{nbsp}1 and{nbsp}8 pages).
As there's no official {lib} Python bindings yet, see
link:doc/python-howto.txt[`doc/python-howto.txt`] to understand how to
use them.
== Supported versions
The LTTng project supports the last two released stable versions
(e.g. stable-2.13 and stable-2.12).
Fixes are backported from the master branch to the last stable version unless
those fixes would break the ABI or API. Those fixes may be backported to the
second-last stable version, depending on complexity and ABI/API compatibility.
Security fixes are backported from the master branch to both of the last stable
version and the second-last stable version.
New features are integrated into the master branch and not backported to the
last stable branch.
== Community
Mailing list::
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev[lttng-dev]
(mailto:lttng-dev@lists.lttng.org[lttng-dev@lists.lttng.org])
IRC channel::
irc://irc.oftc.net/lttng[`#lttng`] on the OFTC network
Mastodon::
https://mastodon.social/@lttng[lttng]
Bug tracker::
https://bugs.lttng.org/projects/lttng-tools[{lt} bug tracker]
GitHub project::
https://github.com/lttng/lttng-tools/[lttng/lttng{nbh}tools]
Continuous integration::
https://ci.lttng.org/job/lttng-tools_master_linuxbuild/[{lt}'s master build]
on LTTng's CI
Code review::
https://review.lttng.org/q/project:lttng-tools[_lttng{nbh}tools_ project]
on LTTng Review
Contributor's guide::
https://github.com/lttng/lttng-tools/blob/master/CONTRIBUTING.md
|