error::pass5 - chyby procesní fáze 5
Chyby vyskytující se v procesní fázi 5 (execution)
mohou mít řadu příčin.
- výjimečné události během
provádění skriptu
- Systemtap provádí četné
kontroly aby ochránil systémy a uživatele před
chybami a nežádoucím chováním. Skript
může cíleně zavolat tapset funkci
error() aby signalizoval problém. Paměť
potřebná pro čtení některé z
kontextových proměnných může být
nedostupná. Zvažte použití
try/catch bloku. Zvažte též
použití přepínačů stap
--suppress-handler-errors nebo stap --skip-badvars .
- vyčerpání zdrojů
- Může dojít k dosažení
jednoho z mnoha limitů na zdroje (čas, místo na
disku, ...). Může také dojít k
přetížení systému,
vyčerpání dostupné paměti
(příliš mnoho prvků v poli atd.).
Některé z chybových hlášení
identifikují jméno makra, které lze
využít ke zvýšení daného limitu.
Zvažte použití voleb stap
--suppress-handler-errors a/nebo stap -g --suppress-time-limits
. Zvyšte nebo vypněte jednotlivé omezení
použitím zmíněných maker, např.
stap -DSOME_LIMIT=NNNN .
- problém vzdáleného serveru
- Pokud používáte volbu stap
--remote pro spuštění systemtap skriptu na
vzdáleném stroji, ujistěte se, že je
možné k tomuto stroji úspěšně
vytvořit SSH spojení, a že na něm je
nainstalovaný "systemtap-runtime".
- problém instalace
- Je možné, že systemtap nebyl
korektně nainstalován. Například programu
/usr/bin/staprun může chybět
potřebné "setuid" oprávnění,
nebo uživatel, který spouští skript,
nemá dostatečná oprávnění (root,
nebo skupina stapusr a členství v
souvisejících skupinách). Proměnné
prostředí mohou ovlivňovat
umístění binárních souborů, jako
např. /usr/libexec/.../stapio.
- chyby v analyzovaném uživatelském
programu
- Program spuštěný
prostřednictvím stap -c CMD mohl skončit s
nenulovou návratovou hodnotou.
- Nezachycená výjimka ve zkoumaném
programu
- Používáte-li --runtime=dyninst,
můžete se setkat s chybou, kdy zkoumaný program
skončí s chybou "terminate called after throwing an
instance of 'foo_exception'". Toto je bohužel důsledek
omezení instrumentačního nástroje Dyninst,
který někdy zabrání, aby se výjimky
správně odvíjely v instrumentovaném
kódu.
Zvýšit upovídanost procesní fáze 5 lze volbou
--vp 00001 .
stap(1),
http://sourceware.org/systemtap/wiki/TipExhaustedResourceErrors,
error::fault(7stap),
error::reporting(7stap)