ERROR::PASS4(7stap) ERROR::PASS4(7stap)

# [JMÉNO](#JM)

error::pass4 - chyby procesní fáze 4

# [POPIS](#POPIS)

Během procesní fáze 4 (compilation) dochází obvykle jen k několika málo druhům chyb:

[změny verze jádra](#zm)

Vložený C kód, který systemtap generuje, nebo obsahuje v rámci tapset skriptů by měl být portabilní napříč širokou škálou verzí linuxového jádra. Nicméně, mohou se vyskytnout výjimky, jako například změna typu parametrů jaderné funkce a podobně. Pokud k tomu dojde, může být řešením použít upstream verzi systemtapu (git://sourceware.org/git/systemtap.git), která je na takové změny obvykle rychle adaptována. Jinými slovy: **Pro použití s velmi mladými jádry** **sestavte systemtap ze zdrojových kódů v gitu**. Pokud ani upstream verze systemtapu neobsahuje opravu, prosím, nahlašte chybu vývojářům systemtapu.

[chybný vložený (embedded) C kód](#chybn)

Vložený C kód ve Vašem guru (-g) skriptu systemtap nekontroluje. Předává jej kompilátoru zcela bez úprav. Chyby tohoto typu odhalí kompilátor právě v procesní fázi 4 během sestavování jaderného modulu systemtapu.

[nekompratibilní vložený C kód](#nekompratibiln)

Rozhraní mezi C kódem, který systemtap generuje a vloženým C kódem se někdy mění. Například před verzí systemtap-1.8 se parametry předávaly pomocí maker *THIS-&gt;foo* and *THIS-&gt;\_\_retvalue* ale od verze 1.8 již pomocí maker *STAP\_ARG\_foo* and *STAP\_RETVALUE*. Upravte svůj vložený C kód tak, aby vyhovoval aktuální syntaxi, nebo použijte režim zpětné kompatibility *stap --compatible=VERSION .*

[chyby a záhadné chování kompilátoru](#chyby)

"Internal compiler error" značí chyby kompilátoru. Takové chyby by měly být nahlášeny vývojářům kompilátoru. K chybovému hlášení připojte předzpracovaný *.i* soubor spolu s kopií dané příkazové řádky kompilátoru. Pro sesbírání relevantních informací, spusťte

```
stap -k --vp 0003 -p4 ....
```

Systemtap takto uchová dočasný adresář i příkazovou řádku kompilátoru. V tomto adresáři se nachází hlavní vygenerovaný soubor *stap\_NNNNN\_src.c*. Použijte následující postup pro získání předzpracovaného výstupu:

```
make -C /lib/modules/`uname -r`/build M=`pwd` stap_NNNNN_src.i
```

(všimněte si přípony *.i* ). Příkazová řádka kompilátoru by měla být uchována v souboru *.stap\_NNNNN\_src.i.cmd*.

# [VIZ TÉŽ](#VIZ_T)

```
stap(1),
error::reporting(7stap)
```

---

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