gpt4 book ai didi

linux - 分析 Linux 内核模块

转载 作者:IT王子 更新时间:2023-10-29 00:27:54 25 4
gpt4 key购买 nike

我有兴趣为 Linux 内核分析一个模块。我这样试过:

  1. 使用CONFIG_PROFILING=y构建内核
  2. 使用 profile=2 启动内核
  3. 通过 echo 123 >/proc/profile 重置分析器
  4. 模块已被专用守护进程成功加载
  5. 运行一个用户空间应用程序,该应用程序通过特定的 ioctl 调用使用该模块。测试应用按预期运行,因此模块运行正常。
  6. 使用 readprofile -p/proc/profile -m System.map 读取分析信息,其中 System.app 与内核一起生成。

到目前为止,还不错。几乎一切都按预期工作。然而,没有起作用的是,我没有获得关于我的模块的任何信息,即没有提到模块的任何功能。

然而,转念一想,我记得我忘记使用CONFIG_PROFILING=y重新编译模块。

所以,我的问题是:模块没有出现在分析日志中是因为它没有用 CONFIG_PROFILING=y 编译,还是有其他更明显的原因我不知道?

如果有人想知道,为什么我要问而不是立即尝试,那是因为,我不能在家里做,我更想听听知识渊博会说什么在我再次访问代码之前。

最佳答案

似乎不可能以这种方式分析模块,因为它们是动态加载的,这意味着它们从 System.map 文件中丢失

一个解决方案是将驱动程序构建到内核中。不幸的是,这并不总是有效,因为系统可能设计为仅使用内置于模块中的驱动程序运行。

关于linux - 分析 Linux 内核模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com