内核学习第一步:查看源码Vim+Cscope
内核学习第一步:查看源码Vim+Cscope本文参照Linux内核修炼之道编写,作者为任桥伟。
Vim就不用多说了,大家都在用。Cscope看软件名字就知道C+scope,本身设计出来就是为了浏览c的代码的。通过Cscope可以知道诸如某个函数的定义、那些函数调用了它、它调用了那些函数等等。是在控制台学习Linux源码不可缺少的有力工具。你可以通过阅读Vim中文帮助手册来了解:help if_cscop.txt。
1. 安装Cscope
从http://cscope.sourceforge.net下载然后编译安装
2. 生成Cscope的数据库
进入你需要查看的源码的根目录,比如你要查看的是Linux内核源码,位于/usr/src/linux下,那么使用以下命令生成Cscope数据库文件
view plaincopy to clipboardprint?
cd /usr/src/linux
cscope –Rbq
cd /usr/src/linux
cscope –Rbq 以上命令会生成三个文件:cscope.in.out cscope.out cscope.po.out
3. 将Cscope数据库文件导入Vimview plaincopy to clipboardprint?
vim
:cs add /usr/src/linux/cscope.out /usr/src/linux
vim
:cs add /usr/src/linux/cscope.out /usr/src/linux 4. Cscope的使用方法
你可以通过阅读Vim的在线文档详细了解 :help if_cscop.txt 。我简单的解释一下最常用的find命令:view plaincopy to clipboardprint?
:cs find c|d|e|f|g|i|s|t name
:cs find c|d|e|f|g|i|s|t name S: 查找本C代码符号
g: 查找本定义
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找本字符串
e: 查找本egrep模式
f: 查找本文件
i: 查找包含本文件的文件
例如查找main函数的定义view plaincopy to clipboardprint?
:cs find g main
:cs find g main 都知道vim支持缩写命令格式,你可以使用:cs f g main来代替
5. 配置Vim,加速Cscope的使用
首先你要对Vim配置有个初步的了解,请参看此文打造你自己的vim--如何配置vim
你用vim打开你个人根目录下的vim配置文件
view plaincopy to clipboardprint?
username@ubuntu:~$ vim /home/username/.vimrc
username@ubuntu:~$ vim /home/username/.vimrc 添加如下内容:view plaincopy to clipboardprint?
if filereadable("cscope.out")
cs add cscope.out
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set nu
syntax on
set tabstop=4
set autoindent
set matchtime=1
set hlsearch
set cindent
set shiftwidth=4
set ruler
set showmode 谢谢分享....学习鸟 学习了
页:
[1]