Provided by: systemtap-doc_5.0-2ubuntu1_amd64 bug

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)