Chinaunix
标题:
怎样快速寻找到一个函数的定义??
[打印本页]
作者:
todayrw
时间:
2008-10-20 16:27
标题:
怎样快速寻找到一个函数的定义??
在一个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函数定义应该在其它文件中,但又不知道在内核源代码里的哪个文件。
请问:怎样在内核源码中快速地寻找到那个函数的定义??
作者:
franky2008
时间:
2008-10-21 08:42
我的方法是:在认为有可能的文件夹里,比如driver,运行grep "函数名称" * -nr, 呵呵。
作者:
todayrw
时间:
2008-10-21 09:48
可是现在很现实的一个问题是,我在这个linux2.6源码里找不到alloc_etherdev的定义。
怎样才能找到它呢?大家帮帮忙,谢谢!
作者:
richardhesidu
时间:
2008-10-21 11:16
你用的是那个版本的内核?
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)
作者:
yikaikai
时间:
2008-10-21 13:39
是否没有包括所有的文件?
作者:
可可熊
时间:
2008-10-21 13:44
cscope等工具,不行了就grep.
作者:
moon146
时间:
2008-10-21 15:18
2.6.21内核,在/net/ethernet/eth.c能找到.你用sourceinsight有没有同步?还是你内核的文件不全?很容易找到的啊
作者:
todayrw
时间:
2008-10-22 09:44
我用的是2.6.14的内核,在drivers/net/里没有看到有ethernet文件夹
还有没有可能是在其它地方????
作者:
richardhesidu
时间:
2008-10-22 14:40
原帖由
todayrw
于 2008-10-22 09:44 发表
我用的是2.6.14的内核,在drivers/net/里没有看到有ethernet文件夹
还有没有可能是在其它地方????
晕,不在drivers文件夹下,在linux内核根目录的net文件夹里的ethernet子文件夹
作者:
todayrw
时间:
2008-10-22 15:26
谢了!richardhesidu
:)
作者:
eveson
时间:
2008-11-02 13:09
vi + ctags
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2