怎样快速寻找到一个函数的定义??
在一个linux 2.6相关的项目里,我把我认为会被调用到的源文件加载到source insight里,同步后,仍然无法找到函数alloc_etherdev的定义。
而我在另一个linux 2.4平台里的drivers/net/Net_init.c里找到了这个函数,而在linux 2.6里,根本就没有找到drivers/net/Net_init.c
所以,我想:alloc_etherdev函数定义应该在其它文件中,但又不知道在内核源代码里的哪个文件。
请问:怎样在内核源码中快速地寻找到那个函数的定义??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我的方法是:在认为有可能的文件夹里,比如driver,运行grep "函数名称" * -nr, 呵呵。
可是现在很现实的一个问题是,我在这个linux2.6源码里找不到alloc_etherdev的定义。
怎样才能找到它呢?大家帮帮忙,谢谢!
你用的是那个版本的内核?
2.6.23开始和之前的版本不同。
2.6.23以前的版本,alloc_etherdev()在/net/ethernet/eth.c中
而2.6.23开始,alloc_etherdev()的定义是include/linux/etherdevice.h
#define alloc_etherdev(sizeof_priv) alloc_etherdev_mq(sizeof_priv, 1)
是否没有包括所有的文件?
cscope等工具,不行了就grep.
2.6.21内核,在/net/ethernet/eth.c能找到.你用sourceinsight有没有同步?还是你内核的文件不全?很容易找到的啊
我用的是2.6.14的内核,在drivers/net/里没有看到有ethernet文件夹
还有没有可能是在其它地方????
晕,不在drivers文件夹下,在linux内核根目录的net文件夹里的ethernet子文件夹
谢了!richardhesidu
:)