debugging - 加载到 Linux 内核的模块的基地址
问题描述
我想知道加载内核模块的基地址。什么是十六进制地址/proc/kallsyms
,/sys/module/<MODULE_NAME>/sections/.init.text
并/proc/modules
表示。我应该使用哪一个进行调试?
解决方案
内核执行 vmalloc 并将从用户空间传递的模块的内容复制到 vmalloc 的缓冲区中。模块的基地址将由 /proc/modules 指向的十六进制地址给出
/proc/kallsyms:符号在内存中加载的地址
/sys/module/<MODULE_NAME>/sections/.init.text:该模块内存中.init.text节的起始地址
/proc/modules : 模块在内存中的起始地址
我建议使用 kallsyms 进行调试,因为可以在内存中为该符号设置 bp
推荐阅读
- excel - SUMIF:公式作为标准不适用于整列
- php - 带斜线的 PHP 日期转换
- javascript - Formik & Yup:如何验证提供的日期是否为十八岁?
- spring - 未知的生命周期阶段“.qualitygate.wait=true”
- excel - 找到第一个“To Date”,选择“To Date”下的单元格,将值粘贴到前面的单元格中,然后转到下一个 To Date
- python - 在列表中查找并删除文本
- reactjs - 有没有办法在 WordPress Gutenberg 编辑器中添加新标签
- visual-studio - Visual Studio 2019 应用建议快捷方式
- nlp - DialogFlow 上的 Botium K-fold 交叉验证引发前置条件错误
- python - 使用 LDAP 和 python cx_Oracle 连接到数据库