2011-06-17 112 views
7

我想知道内核模块的地址。实际上,从堆栈跟踪看来,崩溃是由内核模块触发的(系统启动后已崩溃)。有几个模块我手动insmod。所以我需要检测其中哪些模块触发了崩溃。请让我知道如何获得使用insmod加载的每个模块的地址。如何获取内核模块的地址(使用insmod加载)

+0

我使用的Linux内核2.6.34.7。 – Souvik 2011-06-17 10:47:21

回答

6

cat/proc/modules应该给你一个粗略的指导,以指导事物的加载。通过查看/ proc/kallsyms,您可能会更清楚地知道内核崩溃的位置。

+0

非常感谢您的信息。 – Souvik 2011-06-20 05:38:52

2

/sys/module/<MODULE_NAME>/sections/包含您的模块的所有部分的地址。由于大多数部分以点(.)开始,不要忘了这列出目录内容时,通过-als

$ ls -a /sys/module/usbcore/sections/ 
.      __ex_table     __param 
..      .fixup      .rodata 
.altinstr_replacement .gnu.linkonce.this_module .rodata.str1.1 
.altinstructions  .init.text     .rodata.str1.8 
.bss     __kcrctab_gpl    .smp_locks 
__bug_table   __ksymtab_gpl    .strtab 
.data     __ksymtab_strings   .symtab 
.data..read_mostly  __mcount_loc    .text 
.data.unlikely   .note.gnu.build-id   .text.unlikely 
.exit.text    .parainstructions   __verbose