Provided by: systemtap-doc_4.6-2_amd64 

JMÉNO
warning::debuginfo - varování ohledně chybějících ladicích informací
POPIS
Pro mnoho symbolických sondážních operací potřebuje systemtap ladicí informace DWARF generované
kompilátorem při použití CFLAGS -g. Obvykle jsou ladicí informace potřeba pro nalezení sond pro funkce,
příkazy, nebo kontextové proměnné. Ladicí informace se mohou nacházet buď přímo v binárních souborech,
nebo mohou být odděleny do samostatných souborů, které se hledají v závislosti na nastavení proměnné
prostředí SYSTEMTAP_DEBUGINFO_PATH.
Ověřte zda jsou pro vaši distribuci dostupné "debuginfo" balíčky s ladicími informacemi. Pokud tyto
balíčky k dispozici nemáte, může být nutné programy, které chcete analyzovat, znovu sestavit tak, aby
obsahovaly také ladicí informace DWARF.
Systemtap používá knihovnu elfutils ke zpracování ELF/DWARF souborů. Použitá verze elfutils odpovídá
číslu za lomítkem ve výstupu příkazu stap-V output:
% stap -V
Systemtap translator/driver (version 2.3/0.156, rpm 2.3-1.fc19)
Copyright (C) 2005-2014 Red Hat, Inc. and others
[...]
Ukazuje, že systemtap byl sestaven s elfutls verze 0.156.
ladicí informace jádra
Pro skripty, které analyzují linuxové jádro, může systemtap potřebovat příslušný soubor vmlinux
vzniklý při sestavování jádra. Poznamenejme, že zde nejde o zkomprimovaný soubor vmlinuz , na kte‐
rý se odkazuje boot loader, a ze kterého byly ladicí informace odstraněny. Soubor vmlinux je znač‐
ně větší, než vmlinuz. Pokud sestavujete jádro ručně, ujistěte se, že máte zapnutou volbu CON‐
FIG_DEBUG_INFO=y. Navíc některé linuxové distribuce mohou poskytovat více variant jádra a pro kaž‐
dou variantu samostatný balíček s ladicími informacemi. Příkladem takové varianty je kernel-debug,
varianta s matoucím názvem, která má vlastní kernel-debug-debuginfo balíček (což není totéž jako
kernel-debuginfo obsahující ladicí informace pro balíček kernel). Program stap-prep může pomoci s
instalací správných balíčků.
ladicí informace pro uživatelské procesy
Pro SystemTap skripty, které analyzují uživatelské procesy, může systemtap potřebovat příslušné
ladicí informace také. Pokud analyzujete ručně sestavený program, použijte pro jeho překlad
CFLAGS=-g -O2 .
minidebuginfo
Na některých systémech mohou binární soubory obsahovat podmnožinu obvyklých ladicích informací pro
sledování funkcí a generovaní výpisů 'backtrace'. Tohle tzv. 'MiniDebugInfo' představuje xz zkom‐
primovanou ELF sekci .gnu_debugdata. MiniDebugInfo je podporováno elfutils 0.156, nebo novější
verze.
komprimované debuginfo
Na některých systémech mohou být ladicí informace dostupné v komprimované formě v rámci sekcí
.zdebug_*. Elfutils 0.153 a novější verze obsahují podporu podporu pro tyto komprimované ladicí
informace.
nepotřebné ladicí informace
V některých případech lze skript upravit tak, aby ladicí informace nepotřeboval. Například skript,
který používá probe syscall.* lze obvykle přepsat na skript založený na probe nd_syscall.*, non-
DWARF sondách, které používají složitější (ale také křehčí) mechanizmus pro přístup k argumentům
systémových volání. Další možností je použití zakompilovaných značek typu 'tracepoint', které jsou
dostupné v linuxovém jádře, nebo využít značky <sys/sdt.h> pro uživatelské procesy. Ty nejsou za‐
loženy na ladicích informacích. Pokud jsou ladicí informace potřebné k vyhodnocení složitějších
výrazů typu $var->foo->bar mělo by být možné použít zápis @cast(var,"foo","foo.h")->foo->bar čímž
dojde k syntéze ladicích informací z hlavičkových souborů.
AUTOMATIZACE
Na některých platformách může systemtap doporučit, které příkazy spustit pro stažení ladicích informací.
Také je možné použít přepínač --download-debuginfo flag. Program stap-prep může být schopen potřebné ba‐
líčky stáhnout a nainstalovat. Další možností je použít stap-server pro kompilaci na vzdáleném stroji,
kde mohou být ladicí informace centralizovány. V tomto případě použijte volbu stap --use-server.
VIZ TÉŽ
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),
http://elfutils.org/,
http://fedoraproject.org/wiki/Features/MiniDebugInfo
WARNING::DEBUGINFO(7stap)