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 .