有网络的时候,使用LXR(The Linux Cross Referencer)在线阅读源码固然是一件很爽的事情。在无网络的情况下,只通过vim进入内核源码那样查找就显得有些勉强。接下来,本文将介绍一种快速定位源码的工具:ctags和cscope。通过vim编辑器,再配合使用上述两种工具就可以快速定位想要查看的源码。好了,开始吧!
1.下载最新内核源码包,解压至主目录下
接下来的步骤当然可以在当前系统内核源码目录下进行,不过为了保险期间还是最好在主目录下专门创建一个存放源码的目录。下文所说的源码目录均指主目录下的源码目录。
2.安装ctags
使用命令:sudo apt-get install ctags
3.安装cscope
使用命令:sudo apt-get install cscope
4.成标签文件
在源码目录下通过命令make tags生成标签文件
5.生成索引文件
在源码目录下通过命令make cscope生成索引文件。
6.将索引文件导入vim中
使用命令打开vim的配置文件:sudo gedit /etc/vim/vimrc;然后在该文件下添加如下代码:
1 |
if filereadable( "cscope.out" ) |
2 |
cs |
3 |
endif |
这样每次打开vim就可以直接使用cscope了。
完成以上步骤以后就可以通过vim进行源码的快速定位了。上述安装的ctags和cscope都属于源码索引工具,因此仅安装两者之一也是可以的。不错,虽然ctags可以快速定位所输入的标签,但cscope的使用方法则更灵活。所以两者同时安装使用起来更方便。下面是一些简单的使用方法,仅供参考。
1.使用ctags
ctags的使用特别简单,首先进入源码目录下,打开vim编辑器,在命令模式下输入:tag tag_name 按回车即可。通常tag_name可以是结构体名称,函数名称,宏变量名称等。通常输入上述命令后,因为找到的标签并不唯一,所以还需要配合使用下述命令:
tfirst:跳至第一个
tnext:跳至下一个
tlast:跳至最后一个
2.使用cscope
虽然ctags使用方便快捷,但有时候使用cscope更灵活,首先可以看cscope的帮助文件:
01 |
cscope |
02 |
add |
03 |
find |
04 |
c:找到调用这个函数的函数 |
05 |
d:找到被这个函数调用的函数 |
06 |
e:找到这个 |
07 |
f:找到此文件夹 |
08 |
g:找到这个定义 |
09 |
i:找文件 |