KALLSYMS(8) | Linux Modul Támogatás | KALLSYMS(8) |
kallsyms - minden kernel szimbólumot kiír hibakereséshez
kallsyms [-Vh] kernel_fájlnév
Kallsyms minden nem-verem szimbólumot kivesz a kernelből, és egy adat objektumot készít, amelyet ahhoz a kernelhez linkelve debuggolható lesz.
Egy normális kernel csak a modulok által használt szimbólumokat exportálja. Hibakereséshez szükség lehet minden nem-verem szimbólumora, nem csak az exportáltakra. kallsyms kivesz minden szekciót és szimbólumot a kernelből, a szekciókról, szimbólumokról és a címeikről egy listát készít, és egy relokálható objektumfájlt készít, ami csak egy __kallsyms szekciót tartalmaz. Miután a __kallsyms szekciót a kernelhez linkeltük, és a kernel bebootolt, bármely debugger használhatja a __kallsyms szekció adatait a jobb szimbólumfeloldás érdekében.
Például, egy debugger használhatja a __kallsyms adatokat, hogy feloldja a következő kernel címeket :-
Ahhoz hogy egy pontos __kallsyms szekciót tartalmazó kernelt hozzunk létre, négy linker menetre van szükség a szokásos egy helyett. A kallsyms és a linker gyors, a három extra lépés csak néhány másodpercig tart egy P200-on.
A __kallsyms szekció egy kicsit szokatlan. Szándékosan nem tartalmaz relokálható adatokat, minden "pointere" a szekción belüli bájt offszet vagy abszolút szám. Ez azt jelenti, hogy bárhová elhelyezhető relokációs problémák nélkül. Különösképp tárolható egy kernel image-en belül, tárolható a kerneltől külön, hozzáfűzhető egy modulhoz betöltés előtt, tárolható egy külön területen, stb.
A /usr/include/sys/kallsyms.h tartalmazza a __kallsyms adatok térképét.
Egy bejegyzés betöltött szekciónként. Mivel a __kallsyms egy betöltött szekció, ha az input fájl tartalmazza a __kallsyms szekciót, akkor az is szerepel a listában.
Egy bejegyzés szimbólumonként az input fájlban. Csak a betöltött szekciókba eső szimbólumok vannak tárolva.
Null-végződésű stringek halmaza. Minden névre van egy a __kallsyms stringterület kezdetétől számított offszet hivatkozás.
Ezek a mezők kivételek a "minden pointer offszet" szabály alól. Ezek egy kernelen belül abszolút címet tartalmaznak.
Eredeti verzió: Keith Owens <kaos@ocs.com.au>, 2000 április
Böszörményi Zoltán <zboszor@mail.externet.hu>
2000 április 20 | Linux |