WARNING::DEBUGINFO(7stap)WARNING::DEBUGINFO(7stap)NAMEwarning::debuginfo - systemtap missing-debuginfo warnings
DESCRIPTION
For many symbolic probing operations, systemtap needs DWARF debuginfo
for the relevant binaries. This often includes resolving func‐
tion/statement probes, or $context variables in related handlers.
DWARF debuginfo may be found in the original binaries built during com‐
pilation, or may have been split into separate files. The SYSTEM‐
TAP_DEBUGINFO_PATH environment variable affects where systemtap looks
for these files.
If your operating system came from a distributor, check with them if
debuginfo packages or variants are available. If your distributor does
not have debuginfo-equipped binaries at all, you may need to rebuild
it.
Systemtap uses the elfutils library to process ELF/DWARF files. The
version of elfutils used by systemtap is the number after the slash in
the -V output:
% stap -V
Systemtap translator/driver (version 2.3/0.156, rpm 2.3-1.fc19)
Copyright (C) 2005-2013 Red Hat, Inc. and others
[...]
This indicates systemtap version 2.3 with elfutils version 0.156.
kernel debuginfo
For scripts that target the kernel, systemtap may search for the
vmlinux file created during its original build. This is dis‐
tinct from the boot-loader's compressed/stripped vmlinuz file,
and much larger. If you have a hand-built kernel, make sure it
was built with the CONFIG_DEBUG_INFO=y option.
process debuginfo
For scripts that target user-space, systemtap may search for de‐
buginfo. If you have hand-built binaries, use CFLAGS=-g -O2 to
compile them.
minidebuginfo
On some systems, binaries may be compiled with a subset of de‐
buginfo useful for function tracing and backtraces. This
'Minidebuginfo' is a xz compressed section labeled .gnu_debugda‐
ta. Support for minidebuginfo relies on elfutils version 0.156
or later.
compressed debuginfo
On some systems, debuginfo may be available, but compressed into
.zdebug_* sections. Support for compressed debuginfo relies on
elfutils version 0.153 or later.
unnecessary debuginfo
In some cases, a script may be altered to avoid requiring debug‐
info. For example, as script that uses probe syscall.* probes
could try instead probe nd_syscall.* (for non-DWARF syscall):
these work similarly, and use more intricate (fragile) tapset
functions to extract system call arguments. Another option is
use of compiled-in instrumentation such as kernel tracepoints or
user-space <sys/sdt.h> markers in libraries or executables,
which do not require debuginfo. If debuginfo was required for
resolving a complicated $var->foo->bar expression, it may be
possible to use @cast(var,"foo","foo.h")->foo->bar to synthesize
debuginfo for that type from a header file.
AUTOMATION
On some platforms, systemtap may advise what commands to run, in order
to download needed debuginfo. Another possibility is to invoke system‐
tap with the --download-debuginfo flag. The stap-prep script included
with systemtap may be able to download the appropriate kernel debugin‐
fo. Another possibility is to install and use a stap-server remote-
compilation instance on a machine on your network, where debuginfo and
compilation resources can be centralized. Try the stap --use-server
option, in case such a server is already running.
SEE ALSOstap(1),
stappaths(7),
stap-server(8),
strip(1),
error::dwarf(7stap),
error::reporting(7stap),
error::contextvars(7stap),
http://fedorahosted.org/elfutils,
http://fedoraproject.org/wiki/Features/MiniDebugInfo
WARNING::DEBUGINFO(7stap)