.\" t .TH ERROR::PASS4 7stap .SH JMÉNO error::pass4 \- chyby procesní fáze 4 .\" macros .de SAMPLE .nr oldin \\n(.i .br .RS .nf .nh .. .de ESAMPLE .hy .fi .RE .in \\n[oldin]u .. .SH POPIS Během procesní fáze 4 (compilation) dochází obvykle jen k několika málo druhům chyb: .TP 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: \fBPro použití s velmi mladými jádry sestavte systemtap ze zdrojových kódů v gitu\fP. Pokud ani upstream verze systemtapu neobsahuje opravu, prosím, nahlašte chybu vývojářům systemtapu. .TP 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. .TP 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 .IR THIS->foo " and " THIS->__retvalue ale od verze 1.8 již pomocí maker .IR 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 .IR "stap --compatible=VERSION ." .TP 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ý .IR ".i" soubor spolu s kopií dané příkazové řádky kompilátoru. Pro sesbírání relevantních informací, spusťte .SAMPLE stap -k --vp 0003 -p4 .... .ESAMPLE Systemtap takto uchová dočasný adresář i příkazovou řádku kompilátoru. V tomto adresáři se nachází hlavní vygenerovaný soubor .IR stap_NNNNN_src.c . Použijte následující postup pro získání předzpracovaného výstupu: .SAMPLE make -C /lib/modules/`uname -r`/build M=`pwd` stap_NNNNN_src.i .ESAMPLE (všimněte si přípony .IR .i ). Příkazová řádka kompilátoru by měla být uchována v souboru .IR ".stap_NNNNN_src.i.cmd" . .SH VIZ TÉŽ .nh .nf .IR stap (1), .IR error::reporting (7stap)