Provided by: systemtap-doc_5.1-4_amd64 bug

NAME

       warning::buildid - chyby ověření build-id

DESCRIPTION

       Systemtap  skript  prochází  několika  fázemi  zpracování, které nemusejí nutně následovat
       bezprostředně po sobě. Někdy je nutné ověřit některé invarianty. Jedním z nich  je  build-
       id,  které zaručuje, že pokud systemtap skript běží proti uživatelským programům, jde o ty
       jejich verze, proti kterým byl systemtap skript skutečně zkompilován.  Build-id  je  údaj,
       který   moderní  (2007+)  překladače  přidávají  do  binárních  souborů  jako  ELF  značku
       NT_GNU_BUILD_ID. Build-id lze zobrazit příkazem readelf -n.

       Na build-id jsou citlivé jen skripty, které provádějí hlubokou analýzu binárních souborů a
       jejich  ladicích  informací.  Například  skripty,  které  používají  sondy  .function nebo
       .statement , nebo skripty, které generují backtrace. Jiné skripty mohou spoléhat například
       na  sondy  process.mark nebo kernel.trace, které nepotřebují ladicí informace, a ty pak na
       build-id citlivé nejsou. Viz  sekci  LADICÍ  INFORMACE  FORMÁTU  DWARF  manuálové  stránky
       stapprobes(3stap).

       Systemtap  uchovává  kopii  relevantních  build-id  uvnitř svých jaderných modulů. Za běhu
       modulu pak dojde ke srovnání uloženého build-id se skutečnou hodnotou, která je  pro  daný
       obraz  binárního  souboru  uložena  v paměti. V případě neshody se vypíše chybová hláška a
       systemtap  odmítne  do  daného  binárního  souboru  vložit  sondy.  To   je   důležité   z
       bezpečnostního  hlediska,  kdy  by  vložení  sond  na  nesprávná  místa mohlo způsobit pád
       programu.

       Nesoulad build-id může být způsoben různými příčinami. Tou hlavní je situace, kdy je verze
       nebo architektura zkoumaného binárního souboru odlišná od verze nebo architektury souboru,
       proti kterému byl systemtap modul vytvořen. Například je možné,  že  systemtap  modul  byl
       sestaven  na  stroji  s  mírně  odlišnou  verzí  nebo  jinou  distribucí OS. Mohlo dojít k
       "rebuildu" jádra při zachování čísla verze. Mohlo také například dojít k "upgrade"  jádra,
       po  kterém  obraz  v  paměti není v souladu s obsahem souborů na disku. Nebo v případě, že
       Vaše distribuce používá samostatné "debuginfo" balíčky, nemusí verze  "debuginfo"  balíčku
       přesně odpovídat verzi hlavního balíčku.

       Pokud  má  nesoulad  build-id  známou příčinu, a je zřejmé, že nedojde ke škodám, je možno
       test na build-id obejít volbou -DSTP_NO_BUILDID_CHECK.

VIZ TÉŽ

       http://fedoraproject.org/wiki/Releases/FeatureBuildId,
       stap(1),
       stapprobes(3stap),
       warning::debuginfo(7stap),
       error::reporting(7stap)

                                                                          WARNING::BUILDID(7stap)