【发布时间】:2014-03-12 11:25:09
【问题描述】:
我在 linux 内核上执行各种任务,并且不时地阅读源代码。我还没有真正需要更改内核(我很擅长所谓的“可加载内核模块”)所以我没有下载内核的源代码,只是使用 http://lxr.free-electrons.com/ 。很多时候,我发现自己找到了一个有很多实现的函数,然后开始猜测我需要哪一个。
例如,我在第 496 行查看文件 Linux/virt/kvm/kvm_main.c 是对 list_add 的调用,单击它会给我两个选项:drivers/gpu/drm/radeon/mkregtable.c, line 84 和 include/linux/list.h, line 60 - 很明显 kvm 不会发送我在“gpu”下的东西,但情况并非总是如此。我查看了文件的包含 - 没有太大帮助。
所以我的问题是:给定一个来自内核的文件和第 ### 行的函数调用,找到一个函数调用实际继续的最佳方法是什么?
(我也很乐意听到不包括网站和\或要求我下载源代码的方式)
【问题讨论】:
-
或者要求我下载源代码 你想不下载就浏览linux内核的源码吗?并且不使用一些 lxr 网站?我在这里看到过类似的请求clientsfromhell.net
-
我确实想使用 lxr。如果不能,我会下载代码。我也对任何其他解决方案持开放态度。只是指出这两个是我的第一和第二偏好。
-
@Martin 我首先使用lxr.free-electrons.com/source 站点。您还可以使用 C-tags 和 C-scope 来检查内核源、搜索它等。要按补丁、版本、分支等进行浏览,请参阅:git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git
-
@PeterL。感谢 C-tag 和 C-scope。他们看起来很有希望。
标签: linux-kernel kernel reverse-engineering