2010-3-5 代码阅读 编译 学习
2010-03-05 21:58
260 查看
代码阅读主要是使用source insight 和 vi+cscope+ctag。
以前使用SI阅读过btreplay的源代码,有点熟悉,只要建立工程,然后导入文件,就可以很方便的阅读源代码了。而vi+cscope+ctag稍微麻烦一点,但是简单的操作也好上手。
以上的内容是中午写的,下午和晚上继续使用时,发现有些功能还是不熟,有些为达到目的而进行的操作还需要进一步学习和确认,其实,还有一点就是我还
不知道vi+ctags+cscope到底能达到多强大的地步。
之后,我在看了下《跟我一起学写Makefile》,感觉这本书也不是很好,不便于快速的上手,实用性不是很强,只看了半本。记得以前看过的《Linux
编程24学时教程》中写的蛮好的,可惜找不到电子档。不过如果只是要能看懂ldd里面的Makefile的话,貌似现在具备的知识就已经可以了。
以前使用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的话,貌似现在具备的知识就已经可以了。
相关文章推荐
- 2010-3-6 代码阅读(续)编译内核 学习
- 通过学习反编译和修改IL,阅读高人的代码,提高自身的水平。 【转】
- 通过学习反编译和修改IL,阅读高人的代码,提高自身的水平。
- 怎么学习阅读大型项目的代码
- Udacity cs344-Introduction to Parallel Programming学习笔记-如何在VS环境下编译课程习题代码
- 别个代码阅读学习(一)
- JVM学习笔记(二)------Java代码编译和执行的整个过程【转】
- 嵌入式 十个最值得阅读学习的C开源项目代码
- JVM学习笔记(1、 基本结构;2、Java代码编译和执行的整个过程3、内存管理和垃圾回收 4、 内存调优 )
- 【伯乐在线】最值得阅读学习的 10 个 C 语言开源项目代码
- 如何阅读别人的代码---c、c++程序学习
- 代码阅读方法与实践_学习笔记:第一章导论
- 十个最值得阅读学习的C开源项目代码
- 最值得阅读学习的 10 个 C 语言开源项目代码
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- 如何自己编译apue.3e中代码 & 学习写makefile
- Cocos2d-x UI学习笔记 分类: cocos2d代码编写 2015-07-27 18:10 5人阅读 评论(0) 收藏
- Cocos2d-x 3D功能学习笔记 分类: cocos2d代码编写 2015-07-27 18:57 8人阅读 评论(0) 收藏
- JVM学习笔记(二)------Java代码编译和执行的整个过程
- JVM学习笔记(二)------Java代码编译和执行的整个过程