Provided by: systemtap-doc_4.6-2_amd64 

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)