我想阅读一些Linux内核源代码,并且找到了LXR。
很棒,但是有时候当我点击某个功能(例如“ kfree”)时,我得到了:
使用ld进行“链接”时,不得有任何冲突。所以问题是:如何确定哪个是那个?
(我认为gcc + makefile是解决方案,但我不知道该怎么做...)
谢谢!
最佳答案
1。
如果您对内核有一些内在的知识,您会注意到kfree是slub或slab或slob的一部分。查看内核配置时,您可能会注意到您使用了slub分配器(通过dfefault)。因此,您可以得出结论-正确的答案是mm / slub.c:3334。
2。
nm -a ./vmlinux | grep kfree
ffffffff81151bd0 T kfree
addr2line -e ./vmlinux 0xffffffff81151bd0
/home/alexhoppus/Desktop/linux/mm/slub.c:3335