1WARNING::DEBUGINFO(7stap)                            WARNING::DEBUGINFO(7stap)
2
3
4

NAME

6       warning::debuginfo - systemtap missing-debuginfo warnings
7
8
9

DESCRIPTION

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

AUTOMATION

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

SEE ALSO

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)
Impressum