ctagslinux
‘壹’ 如何查询linux内核函数
如果要看这两个函数在标准库中的定义用ctags或cscope生成索引.h,cscope,可以跳转到函数定义,man malloc,声明见stdlib。
如果仍然找不到,可以用ctags,si或grep。
windows下用source insight也可,然后查找函数定义,用grep -r 搜索关键字,atoi和malloc在C的标准库中有定义。
1.安装ctags
在源代码目录下运行
ctags -R
这样,会递归生成当前目录下及其子目录的tags文件。
2.使用VIM根据tags文件查找函数或结构定义。
1.在源码目录下查找
vi -t tagname
2.如果要在任意位置使用,则需要把该tags文件添加到~/.vimrc文件中
set tags=/home/money/sda8/2.6232/tags
3.如果要在代码中实时跟踪,则光标移动到函数名上,使用CTRL+]键,按CTRL+t可以返回。
如果要跟踪系统函数,使用shift+K可以自动跳转道光标所在函数的手册。
‘贰’ 怎么在linux中查看库函数源代码
linux中查看库函数源代码,需要自己手动下载一个gnu libc源代码库。然后在里面查,可以使用vim建立个ctags,然后及时定位到相应的函数即可。
‘叁’ linux下怎样用ctags查看内核源码
ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。
ctags能够定位如下内容:
1)用#define定义的宏
2)枚举型变量的值
3)函数的定义、原型和声明
4)名字空间(namespace)
5)类型定义(typedefs)
6)变量(包括定义和声明)
7)类(class)、结构(struct)、枚举类型(enum)和联合(union)
8)类、结构和联合中成员变量或函数
安装ctags,如果是RedHat,则直接使用yum命令安装:在指定的源码位置生成tags文件,并且我们添加很多参数来完善ctags的功能(为了体现其功能的强大,我用它来生成linux源码的tags文件):
然后我们查看tags内容就可以发现,原来tags就是linux内核代码中各个元素的索引,这也就是ctags结合vim可以快速进行定位的原因了(查询就是通过这个文件内容来定位的):