1WARNING::DEBUGINFO(7stap) WARNING::DEBUGINFO(7stap)
2
3
4
6 warning::debuginfo - systemtap missing-debuginfo warnings
7
8
9
11 For many symbolic probing operations, systemtap needs DWARF debuginfo
12 for the relevant binaries. This often includes resolving func‐
13 tion/statement probes, or $context variables in related handlers.
14 DWARF debuginfo is created by the compiler when using CFLAGS -g, and
15 may be found in the original binaries built during compilation, or may
16 have been split into separate files. The SYSTEMTAP_DEBUGINFO_PATH
17 environment variable affects where systemtap looks for these files.
18
19 If your operating system came from a distributor, check with them if
20 debuginfo packages or variants are available. If your distributor does
21 not have debuginfo-equipped binaries at all, you may need to rebuild
22 it.
23
24 Systemtap uses the elfutils library to process ELF/DWARF files. The
25 version of elfutils used by systemtap is the number after the slash in
26 the -V output:
27
28 % stap -V
29 Systemtap translator/driver (version 2.3/0.156, rpm 2.3-1.fc19)
30 Copyright (C) 2005-2014 Red Hat, Inc. and others
31 [...]
32
33 This indicates systemtap version 2.3 with elfutils version 0.156.
34
35
36 kernel debuginfo
37 For scripts that target the kernel, systemtap may search for the
38 vmlinux file created during its original build. This is dis‐
39 tinct from the boot-loader's compressed/stripped vmlinuz file,
40 and much larger. If you have a hand-built kernel, make sure it
41 was built with the CONFIG_DEBUG_INFO=y option. Some Linux dis‐
42 tributions may include several kernel variants, including a con‐
43 fusingly named kernel-debug (an alternative kernel, with its own
44 kernel-debug-debuginfo package), which is not the same thing as
45 the kernel-debuginfo (DWARF data for the base kernel). The
46 stap-prep program can help install the right set.
47
48
49 process debuginfo
50 For scripts that target user-space, systemtap may search for de‐
51 buginfo. If you have hand-built binaries, use CFLAGS=-g -O2 to
52 compile them.
53
54
55 minidebuginfo
56 On some systems, binaries may be compiled with a subset of de‐
57 buginfo useful for function tracing and backtraces. This
58 'Minidebuginfo' is a xz compressed section labeled .gnu_debugda‐
59 ta. Support for minidebuginfo relies on elfutils version 0.156
60 or later.
61
62
63 compressed debuginfo
64 On some systems, debuginfo may be available, but compressed into
65 .zdebug_* sections. Support for compressed debuginfo relies on
66 elfutils version 0.153 or later.
67
68
69 unnecessary debuginfo
70 In some cases, a script may be altered to avoid requiring debug‐
71 info. For example, as script that uses probe syscall.* probes
72 could try instead probe nd_syscall.* (for non-DWARF syscall):
73 these work similarly, and use more intricate (fragile) tapset
74 functions to extract system call arguments. Another option is
75 use of compiled-in instrumentation such as kernel tracepoints or
76 user-space <sys/sdt.h> markers in libraries or executables,
77 which do not require debuginfo. If debuginfo was required for
78 resolving a complicated $var->foo->bar expression, it may be
79 possible to use @cast(var,"foo","foo.h")->foo->bar to synthesize
80 debuginfo for that type from a header file.
81
82
84 On some platforms, systemtap may advise what commands to run, in order
85 to download needed debuginfo. Another possibility is to invoke system‐
86 tap with the --download-debuginfo flag. The stap-prep script included
87 with systemtap may be able to download the appropriate kernel debugin‐
88 fo. Another possibility is to install and use a stap-server remote-
89 compilation instance on a machine on your network, where debuginfo and
90 compilation resources can be centralized. Try the stap --use-server
91 option, in case such a server is already running.
92
93
95 gcc(1),
96 stap(1),
97 stappaths(7),
98 stap-server(8),
99 stap-prep(1),
100 strip(1),
101 warning::symbols(7stap),
102 error::dwarf(7stap),
103 error::reporting(7stap),
104 error::contextvars(7stap),
105 http://elfutils.org/,
106 http://fedoraproject.org/wiki/Features/MiniDebugInfo
107
108
109
110 WARNING::DEBUGINFO(7stap)