您的位置:首页 > 编程语言

2010-3-5 代码阅读 编译 学习

2010-03-05 21:58 260 查看
代码阅读主要是使用source insight 和 vi+cscope+ctag。
以前使用SI阅读过btreplay的源代码,有点熟悉,只要建立工程,然后导入文件,就可以很方便的阅读源代码了。而vi+cscope+ctag稍微麻烦一点,但是简单的操作也好上手。

vi的使用

一般vi自己的功能有限,需要装vim,如果是ubuntu系统的话,只需要apt-get vim貌似就可以了。

在工作用的虚拟服务器中vim已经装好,所以就没有去管在centos中如何装vim,之后编辑/root/.vimrc,

我的.vimrc文件如下(前面一部分是原来就有的,应该是学长以前写的,我只是增加了行号和语法高亮等):

set ai

set ci

set cindent

set tbs

set ts=4

set autoindent

set hlsearch

set number

syntax on

set showmach

set mouse=a

此外,使用split和vsplit可以在vi中分屏,之后可使用Ctrl+W(Ctrl+shift+w)在个窗口中切换,很奇怪的是我的敲两次才行。

cscope的使用

首先,cscope和ctag是两回事,一开始我没弄清楚,有点迷茫。

使用cscpe -Rbkq命令后,当前目录中会多出这几个文件:cscope.out, cscope.in.out, cscope.po.out,

其中cscope.out是索引文件,cscope.in.out, cscope.po.out是由于-q选项,

而产生的倒排索引(每次我从cscope中退出后,这两个文件就没了,不知道是不是操作失误了)。

-R recurse subdirectories during search for source file

-k "kernel mode",turn off the use of defualt include dir when buliding the datebase,

since kernel source trees generally do not use it

-b build the cross-reference only(“即 不进入cscope界面”)

-q enable fast symbol lookup via a inverted index

之后,就会出现cscope界面,在这里主要用到上下方向键、空格键、<Tab>键和Ctrl+d。

找到所需的文件,点击回车后进入,之后就轮到ctag发挥作用了。

vi中使用tag进行查找之前,需要使用 ctags -R生成一个tags文件,进入vi后使用:tag XXX就可以查找了,其他的命令为:

:tnext 跳到下一个

:tfirst 跳到第一个

:
tprevious 跳到n个前

:
tnext 跳到n个后

:tlast 跳到最后一个

Ctrl+[跳转到该函数的首行,Ctrl+]跳转到该函数的末行

此外,比较让人高兴的是,tag可以实现在多个文件之间跳转,且在输入命令时可以用<tab>补全,

以上的内容是中午写的,下午和晚上继续使用时,发现有些功能还是不熟,有些为达到目的而进行的操作还需要进一步学习和确认,其实,还有一点就是我还
不知道vi+ctags+cscope到底能达到多强大的地步。
之后,我在看了下《跟我一起学写Makefile》,感觉这本书也不是很好,不便于快速的上手,实用性不是很强,只看了半本。记得以前看过的《Linux
编程24学时教程》中写的蛮好的,可惜找不到电子档。不过如果只是要能看懂ldd里面的Makefile的话,貌似现在具备的知识就已经可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: