1LTTNG-UST-DL(3)                  LTTng Manual                  LTTNG-UST-DL(3)
2
3
4

NAME

6       lttng-ust-dl - Dynamic linker tracing (LTTng-UST helper)
7

SYNOPSIS

9       Launch your application by preloading liblttng-ust-dl.so:
10
11       $ LD_PRELOAD=liblttng-ust-dl.so my-app
12

DESCRIPTION

14       When the liblttng-ust-dl.so library is preloaded before a given
15       application starts, it causes all calls to dlopen(3) and dlclose(3) in
16       said application to be traced with LTTng-UST (see lttng-ust(3)).
17
18       See lttng(1) to learn more about how to control LTTng tracing sessions.
19
20           Important
21           This LTTng-UST helper can also emit shared library load/unload
22           events (see Shared library load/unload tracking in lttng-ust(3)).
23           You should NOT use the event records generated by this LTTng-UST
24           helper (prefixed with lttng_ust_dl:) to track the loading and
25           unloading of shared libraries, especially in situations where a
26           dynamically loaded library loads its own dependencies. Instead, do
27           preload liblttng-ust-dl.so, but use the shared library load/unload
28           event records, which are more reliable, for your tracking analysis.
29
30       The following LTTng-UST events are available when using this library.
31
32       lttng_ust_dl:dlopen
33           Emitted when dlopen(3) is called.
34
35           Fields:
36
37           ┌───────────────┬────────────────────────────┐
38Field name     Description                
39           ├───────────────┼────────────────────────────┤
40baddr          │ Base address of loaded     │
41           │               │ library.                   │
42           ├───────────────┼────────────────────────────┤
43memsz          │ Size of loaded library in  │
44           │               │ memory.                    │
45           ├───────────────┼────────────────────────────┤
46flags          │ Flags passed to dlopen(3). │
47           ├───────────────┼────────────────────────────┤
48path           │ Path to loaded library     │
49           │               │ file.                      │
50           ├───────────────┼────────────────────────────┤
51has_build_id   │ Whether or not the loaded  │
52           │               │ library has a build ID. If │
53           │               │ this field is 1, you can   │
54           │               │ expect that an             │
55           │               │ lttng_ust_dl:build_id      
56           │               │ event record follows this  │
57           │               │ one (not necessarily       │
58           │               │ immediately after).        │
59           ├───────────────┼────────────────────────────┤
60has_debug_link │ Whether or not the loaded  │
61           │               │ library has debug link     │
62           │               │ information. If this field │
63           │               │ is 1, you can expect that  │
64           │               │ an lttng_ust_dl:debug_link 
65           │               │ event record follows this  │
66           │               │ one (not necessarily       │
67           │               │ immediately after).        │
68           └───────────────┴────────────────────────────┘
69
70       lttng_ust_dl:dlmopen
71           Emitted when dlmopen(3) is called.
72
73           Fields:
74
75           ┌───────────────┬────────────────────────────┐
76Field name     Description                
77           ├───────────────┼────────────────────────────┤
78baddr          │ Base address of loaded     │
79           │               │ library.                   │
80           ├───────────────┼────────────────────────────┤
81memsz          │ Size of loaded library in  │
82           │               │ memory.                    │
83           ├───────────────┼────────────────────────────┤
84nsid           │ ID of the namespace in     │
85           │               │ which the library is       │
86           │               │ loaded (as passed to       │
87           │               │ dlmopen(3)).               │
88           ├───────────────┼────────────────────────────┤
89flags          │ Flags passed to            │
90           │               │ dlmopen(3).                │
91           ├───────────────┼────────────────────────────┤
92path           │ Path to loaded library     │
93           │               │ file.                      │
94           ├───────────────┼────────────────────────────┤
95has_build_id   │ Whether or not the loaded  │
96           │               │ library has a build ID. If │
97           │               │ this field is 1, you can   │
98           │               │ expect that an             │
99           │               │ lttng_ust_dl:build_id      
100           │               │ event record follows this  │
101           │               │ one (not necessarily       │
102           │               │ immediately after).        │
103           ├───────────────┼────────────────────────────┤
104has_debug_link │ Whether or not the loaded  │
105           │               │ library has debug link     │
106           │               │ information. If this field │
107           │               │ is 1, you can expect that  │
108           │               │ an lttng_ust_dl:debug_link 
109           │               │ event record follows this  │
110           │               │ one (not necessarily       │
111           │               │ immediately after).        │
112           └───────────────┴────────────────────────────┘
113
114       lttng_ust_dl:dlclose
115           Emitted when dlclose(3) is called.
116
117           Fields:
118
119           ┌───────────┬────────────────────────┐
120Field name Description            
121           ├───────────┼────────────────────────┤
122baddr      │ Base address of loaded │
123           │           │ library.               │
124           └───────────┴────────────────────────┘
125
126       lttng_ust_dl:debug_link
127           Emitted when debug link information is found when loading a library
128           with dlopen(3). See Debugging Information in Separate Files
129           <https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-
130           Files.html> for more information about debug links.
131
132           Fields:
133
134           ┌───────────┬────────────────────────┐
135Field name Description            
136           ├───────────┼────────────────────────┤
137baddr      │ Base address of loaded │
138           │           │ library.               │
139           ├───────────┼────────────────────────┤
140filename   │ Debug link file name.  │
141           ├───────────┼────────────────────────┤
142crc        │ Debug link file’s CRC. │
143           └───────────┴────────────────────────┘
144
145       lttng_ust_dl:build_id
146           Emitted when a build ID is found when loading a library with
147           dlopen(3). See Debugging Information in Separate Files
148           <https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-
149           Files.html> for more information about build IDs.
150
151           Fields:
152
153           ┌───────────┬────────────────────────┐
154Field name Description            
155           ├───────────┼────────────────────────┤
156baddr      │ Base address of loaded │
157           │           │ library.               │
158           ├───────────┼────────────────────────┤
159build_id   │ Build ID.              │
160           └───────────┴────────────────────────┘
161

BUGS

163       If you encounter any issue or usability problem, please report it on
164       the LTTng bug tracker <https://bugs.lttng.org/projects/lttng-ust>.
165

RESOURCES

167       •   LTTng project website <http://lttng.org>
168
169       •   LTTng documentation <http://lttng.org/docs>
170
171       •   Git repositories <http://git.lttng.org>
172
173       •   GitHub organization <http://github.com/lttng>
174
175       •   Continuous integration <http://ci.lttng.org/>
176
177       •   Mailing list <http://lists.lttng.org> for support and development:
178           lttng-dev@lists.lttng.org
179
180       •   IRC channel <irc://irc.oftc.net/lttng>: #lttng on irc.oftc.net
181

COPYRIGHTS

183       This library is part of the LTTng-UST project.
184
185       This library is distributed under the GNU Lesser General Public
186       License, version 2.1 <http://www.gnu.org/licenses/old-
187       licenses/lgpl-2.1.en.html>. See the for more details.
188

THANKS

190       Thanks to Ericsson for funding this work, providing real-life use
191       cases, and testing.
192
193       Special thanks to Michel Dagenais and the DORSAL laboratory
194       <http://www.dorsal.polymtl.ca/> at École Polytechnique de Montréal for
195       the LTTng journey.
196

AUTHORS

198       LTTng-UST was originally written by Mathieu Desnoyers, with additional
199       contributions from various other people. It is currently maintained by
200       Mathieu Desnoyers <mailto:mathieu.desnoyers@efficios.com>.
201

SEE ALSO

203       lttng-ust(3), dlopen(3), lttng(1)
204
205
206
207LTTng 2.13.6                      06/07/2023                   LTTNG-UST-DL(3)
Impressum