WARNING::BUILDID(7stap) WARNING::BUILDID(7stap) NAME warning::buildid - chyby overeni build-id DESCRIPTION Systemtap skript prochazi nekolika fazemi zpracovani, ktere nemuseji nutne nasledovat bezprostredne po sobe. Nekdy je nutne overit nektere invarianty. Jednim z nich je build-id, ktere zarucuje, ze pokud systemtap skript bezi proti uzivatelskym programum, jde o ty jejich verze, proti kterym byl systemtap skript skutecne zkompilovan. Build- id je udaj, ktery moderni (2007+) prekladace pridavaji do binarnich souboru jako ELF znacku NT_GNU_BUILD_ID. Build-id lze zobrazit prikazem readelf -n. Na build-id jsou citlive jen skripty, ktere provadeji hlubokou analyzu binarnich souboru a jejich ladicich informaci. Napriklad skripty, ktere pouzivaji sondy .function nebo .statement , nebo skripty, ktere generuji backtrace. Jine skripty mohou spolehat napriklad na sondy process.mark nebo kernel.trace, ktere nepotrebuji ladici informace, a ty pak na build-id citlive nejsou. Viz sekci LADICI INFORMACE FORMATU DWARF manualove stranky stapprobes(3stap). Systemtap uchovava kopii relevantnich build-id uvnitr svych jadernych modulu. Za behu modulu pak dojde ke srovnani ulozeneho build-id se skutecnou hodnotou, ktera je pro dany obraz binarniho souboru ulozena v pameti. V pripade neshody se vypise chybova hlaska a systemtap odmitne do daneho binarniho souboru vlozit sondy. To je dulezite z bezpecnostniho hlediska, kdy by vlozeni sond na nespravna mista mohlo zpusobit pad programu. Nesoulad build-id muze byt zpusoben ruznymi pricinami. Tou hlavni je situace, kdy je verze nebo architektura zkoumaneho binarniho souboru odlisna od verze nebo architektury souboru, proti kteremu byl systemtap modul vytvoren. Napriklad je mozne, ze systemtap modul byl sestaven na stroji s mirne odlisnou verzi nebo jinou distribuci OS. Mohlo dojit k "rebuildu" jadra pri zachovani cisla verze. Mohlo take napriklad dojit k "upgrade" jadra, po kterem obraz v pameti neni v souladu s obsahem souboru na disku. Nebo v pripade, ze Vase distribuce pouziva samostatne "debuginfo" balicky, nemusi verze "debuginfo" balicku presne odpovidat verzi hlavniho balicku. Pokud ma nesoulad build-id znamou pricinu, a je zrejme, ze nedojde ke skodam, je mozno test na build-id obejit volbou -DSTP_NO_BUILDID_CHECK. VIZ TEZ http://fedoraproject.org/wiki/Releases/FeatureBuildId, stap(1), stapprobes(3stap), warning::debuginfo(7stap), error::reporting(7stap) WARNING::BUILDID(7stap)