0

我创建了一个内核模块,它使用内核级函数,例如 vfs_read、write 等。这个模块有一个生成文件,可以构建这个模块来获取 .ko 文件。我想分析这个 .ko 文件的 objdump 输出。但是我观察到诸如 vfs_read 和 write 之类的内核函数没有在 .ko 文件中解析。它们只是被调用,我的猜测是它们在运行时被解析。是否可以在生成文件中进行一些更改并将所有这些函数静态链接到单个 .ko 文件中,仅出于分析目的。我尝试在编译时添加静态,但我没有帮助。任何人都可以建议这样做吗?

4

1 回答 1

0

请参阅 ld(1) 手册了解以下内容-static

-static 不要链接到共享库。

由于内核模块不链接任何共享库(或任何库),它没有任何效果。

内核在加载时使用自己的“函数池”解析未定义的引用。所以链接只存在于内存中,或者当你将代码放入内核时。

于 2010-12-09T21:06:04.553 回答