WARNING::DEBUGINFO(7stap) | WARNING::DEBUGINFO(7stap) |
warning::debuginfo - systemtap missing-debuginfo warnings
For many symbolic probing operations, systemtap needs DWARF debuginfo for the relevant binaries. This often includes resolving function/statement probes, or $context variables in related handlers. DWARF debuginfo is created by the compiler when using CFLAGS -g, and may be found in the original binaries built during compilation, or may have been split into separate files. The SYSTEMTAP_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 4.2/0.178, rpm 4.2-1.fc30) Copyright (C) 2005-2019 Red Hat, Inc. and others [...]
This indicates systemtap version 4.2 with elfutils version 0.178.
New enough versions of elfutils (0.178+) enable systemtap to automatically download correct debuginfo from servers run by you, your organization, and/or someone on the public internet. Try:
% export DEBUGINFOD_URLS=https://debuginfod.elfutils.org/ % export DEBUGINFOD_PROGRESS=1 # for progress messages, if you like
and rerun systemtap. It might just work. If it doesn't, read on.
On some platforms, systemtap may advise what commands to run, in order to download needed debuginfo. Another possibility is to invoke systemtap with the --download-debuginfo flag, which uses ABRT. The stap-prep script included with systemtap may be able to download the appropriate kernel debuginfo. 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.
gcc(1), stap(1), stappaths(7), stap-server(8), stap-prep(1), strip(1), warning::symbols(7stap), error::dwarf(7stap), error::reporting(7stap), error::contextvars(7stap), debuginfod(8), http://elfutils.org/, https://sourceware.org/elfutils/Debuginfod.html, http://fedoraproject.org/wiki/Features/MiniDebugInfo