Provided by: systemtap-doc_5.1-5_amd64 

JMÉNO
error::pass4 - chyby procesní fáze 4
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
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
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
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->foo and THIS->__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
"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ředzpracova‐
né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ÉŽ
stap(1),
error::reporting(7stap)
ERROR::PASS4(7stap)