ERROR::PASS2(7stap) ERROR::PASS2(7stap) JMENO error::pass2 - chyby procesni faze 2 POPIS Chyby, ktere se mohou vyskytnout behem procesni faze 2 maji radu pricin. Mezi ty nejobvyklejsi patri: chybejici ladici informace Skript potrebuje ladici informace pro lokalizaci sondazniho bodu, ale ladici informace nejsou doustupne. Vice podrobnosti naleznete v manualovych strankach error::dwarf(7stap) a warning::debuginfo(7stap). nedostupna trida sondaznich bodu Nektere sondazni body jsou specificke pro verzi, architekturu, nebo konfiguraci. Napriklad sondy pro uzivatelske procesy process.* mohou vyzadovat jadernou funkcionalitu "utrace", nebo "uprobes". nedostupne sondazni body Nektere sondazni body mohou byt nedostupne i kdyz jejich trida dostupna je. Napriklad kprobe.function("foobar") muze selhat pokud funkce foobar byla z jadra odstranena. Pro nektere symboly mohou chybet ladici informace. Tim obvykle trpi sondazni body .function nebo .statement . Presvedcte se o dostupnosti ladicich informaci. Vyzkousejte program stap-prep ktery umi nainstalovat chybejici zavislosti. Pouzijte zastupny symbol jako napr. stap -l 'kprobe.function("*foo*")' abyste zjistili dostupne varianty sondazniho bodu. Pouzijte modifikatory ! nebo ? pro vyznaceni volitelnosti, ci dostatecnosti daneho sondazniho bodu, aby funkcni casti skriptu mohly pokracovat v cinnosti. preklepy V specifikaci sondaznich bodu mohou byt preklepy, jako napr. ("sycsall" vs. "syscall"). Zastupne symboly nemuseji byt expandovatelne ani na jeden validni sondazni bod. Overte platnost/existenci sondaznich bodu pomoci stap -l FILTR. Dalsi beznou chybou je pouziti chybneho operatoru dereference: . namisto spravneho ->. Priklad spravneho pouziti je $foo->bar->baz ackoliv v C by spravny zapis byl foo->bar.baz. nedostupne kontextove promenne Systemtap skripty se casto pokouseji pristoupit ke kontextovym promennym v analyzovanem kodu prostrednictvim syntaxe $variable . Dostupnost takovych promennych muze zaviset na verzi kompilatoru, zvolene optimalizaci, architekture atd. Pouzijte stap -L FILTR k vypsani dostupnych kontextovych promennych pro danou sondu. Pouzijte @defined() pro overeni dostupnosti promenne v ramci skriptu. Zvazte pouziti volby stap --skip-badvars cimz se nedostupne kontextove promenne tise preskoci, a jejich hodnota se automaticky nastavi na 0. Experimentujte s volbou --prologue-searching. nekonzistentni cache Obcas muze cache systemtap modulu ($HOME/.systemtap/cache) obsahovat zastarale informace. Pomoci prepinace stap --poison-cache ... lze obsah cache zneplatnit. Poznamka: Toto by se nemelo stat, jde o chybu. Prosim, nahlaste ji. VICE INFORMACI Upovidanost procesni faze 2 lze zvysit pomoci --vp 02. VIZ TEZ stap(1), stap-prep(1), stapprobes(3stap), probe::*(3stap), error::dwarf(7stap), error::inode-uprobes(7stap), warning::debuginfo(7stap), error::reporting(7stap) ERROR::PASS2(7stap)