ERROR::PASS2(7stap) ERROR::PASS2(7stap)

# [JMÉNO](#JM)

error::pass2 - chyby procesní fáze 2

# [POPIS](#POPIS)

Chyby, které se mohou vyskytnout během procesní fáze 2 mají řadu příčin. Mezi ty nejobvyklejší patří:

[chybějící ladicí informace](#chyb)

Skript potřebuje ladicí informace pro lokalizaci sondážního bodu, ale ladicí informace nejsou doustupné. Více podrobností naleznete v manuálových stránkách [*error::dwarf*(7stap)](/man/enterprise-packages/systemtap/error::dwarf.7stap) a [*warning::debuginfo*(7stap)](/man/enterprise-packages/systemtap/warning::debuginfo.7stap).

[nedostupná třída sondážních bodů](#nedostupn)

Některé sondážní body jsou specifické pro verzi, architekturu, nebo konfiguraci. Například sondy pro uživatelské procesy *process.\** mohou vyžadovat jadernou funkcionalitu "utrace", nebo "uprobes".

[nedostupné sondážní body](#nedostupn~2)

Některé sondážní body mohou být nedostupné i když jejich třída dostupná je. Například *kprobe.function("foobar")* může selhat pokud funkce *foobar* byla z jádra odstraněna. Pro některé symboly mohou chybět ladicí informace. Tím obvykle trpí sondážní body *.function* nebo *.statement* . Přesvědčte se o dostupnosti ladicích informací. Vyzkoušejte program *stap-prep* který umí nainstalovat chybějící závislosti. Použijte zástupný symbol jako např. *stap -l 'kprobe.function("\*foo\*")'* abyste zjistili dostupné varianty sondážního bodu. Použijte modifikátory *!* nebo *?* pro vyznačení volitelnosti, či dostatečnosti daného sondážního bodu, aby funkční části skriptu mohly pokračovat v činnosti.

[překlepy](#p)

V specifikaci sondážních bodů mohou být překlepy, jako např. ("sycsall" vs. "syscall"). Zástupné symboly nemusejí být expandovatelné ani na jeden validní sondážní bod. Ověřte platnost/existenci sondážních bodů pomocí *stap -l FILTR*. Další běžnou chybou je použití chybného operátoru dereference: *.* namísto správného *-&gt;*. Příklad správného použití je *$foo-&gt;bar-&gt;baz* ačkoliv v C by správný zápis byl *foo-&gt;bar.baz*.

[nedostupné kontextové proměnné](#nedostupn~3)

Systemtap skripty se často pokoušejí přistoupit ke kontextovým proměnným v analyzovaném kódu prostřednictvím syntaxe *$variable* . Dostupnost takových proměnných může záviset na verzi kompilátoru, zvolené optimalizaci, architektuře atd. Použijte *stap -L FILTR* k vypsání dostupných kontextových proměnných pro danou sondu. Použijte *@defined()* pro ověření dostupnosti proměnné v rámci skriptu. Zvažte použití volby *stap --skip-badvars* čímž se nedostupné kontextové proměnné tiše přeskočí, a jejich hodnota se automaticky nastaví na 0. Experimentujte s volbou *--prologue-searching*.

[nekonzistentní cache](#nekonzistentn)

Občas může cache systemtap modulu ($HOME/.systemtap/cache) obsahovat zastaralé informace. Pomocí přepínače *stap --poison-cache ...* lze obsah cache zneplatnit. **Poznámka:** Toto by se nemělo stát, jde o chybu. Prosím, nahlaste ji.

# [VÍCE INFORMACÍ](#V)

Upovídanost procesní fáze 2 lze zvýšit pomocí *--vp 02*.

# [VIZ TÉŽ](#VIZ_T)

```
stap(1),
stap-prep(1),
stapprobes(3stap),
probe::*(3stap),
error::dwarf(7stap),
error::inode-uprobes(7stap),
warning::debuginfo(7stap),
error::reporting(7stap)
```

---

Document: error::pass2(7stap) from systemtap 5.6-r1 (Chainguard OS)
Source: https://sourceware.org/git/systemtap.git
