首页 > 解决方案 > 加载到 Linux 内核的模块的基地址

问题描述

我想知道加载内核模块的基地址。什么是十六进制地址/proc/kallsyms/sys/module/<MODULE_NAME>/sections/.init.text/proc/modules表示。我应该使用哪一个进行调试?

标签: debugginglinux-kernelkernel-module

解决方案


内核执行 vmalloc 并将从用户空间传递的模块的内容复制到 vmalloc 的缓冲区中。模块的基地址将由 /proc/modules 指向的十六进制地址给出

/proc/kallsyms:符号在内存中加载的地址

/sys/module/<MODULE_NAME>/sections/.init.text:该模块内存中.init.text节的起始地址

/proc/modules : 模块在内存中的起始地址

我建议使用 kallsyms 进行调试,因为可以在内存中为该符号设置 bp


推荐阅读