免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2428 | 回复: 2
打印 上一主题 下一主题

内核学习第一步:查看源码Vim+Cscope [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-06 17:16 |只看该作者 |倒序浏览
内核学习第一步:查看源码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数据库文件

  1. view plaincopy to clipboardprint?
  2. cd /usr/src/linux  
  3. cscope –Rbq  
  4. cd /usr/src/linux
  5. cscope –Rbq
复制代码
以上命令会生成三个文件:cscope.in.out cscope.out cscope.po.out

3.      将Cscope数据库文件导入Vim
  1. view plaincopy to clipboardprint?
  2. vim  
  3. :cs add /usr/src/linux/cscope.out /usr/src/linux  
  4. vim
  5. :cs add /usr/src/linux/cscope.out /usr/src/linux
复制代码
4.      Cscope的使用方法

你可以通过阅读Vim的在线文档详细了解 :help if_cscop.txt 。我简单的解释一下最常用的find命令:
  1. view plaincopy to clipboardprint?
  2. :cs find c|d|e|f|g|i|s|t name  
  3. :cs find c|d|e|f|g|i|s|t name
复制代码
S: 查找本C代码符号

g: 查找本定义

d: 查找本函数调用的函数

c: 查找调用本函数的函数

t: 查找本字符串

e: 查找本egrep模式

f: 查找本文件

i: 查找包含本文件的文件

例如查找main函数的定义
  1. view plaincopy to clipboardprint?
  2. :cs find g main  
  3. :cs find g main
复制代码
都知道vim支持缩写命令格式,你可以使用:cs f g main来代替

5.      配置Vim,加速Cscope的使用

首先你要对Vim配置有个初步的了解,请参看此文打造你自己的vim--如何配置vim

你用vim打开你个人根目录下的vim配置文件

  1. view plaincopy to clipboardprint?
  2. username@ubuntu:~$ vim /home/username/.vimrc  
  3. username@ubuntu:~$ vim /home/username/.vimrc
复制代码
添加如下内容:
  1. view plaincopy to clipboardprint?
  2. if filereadable("cscope.out")  
  3.     cs add cscope.out  
  4. elseif $CSCOPE_DB != ""  
  5.     cs add $CSCOPE_DB  
  6. endif  
  7. set nu  
  8. syntax on  
  9. set tabstop=4  
  10. set autoindent  
  11. set matchtime=1  
  12. set hlsearch  
  13. set cindent  
  14. set shiftwidth=4  
  15. set ruler  
  16. set showmode  
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-12-22 21:25 |只看该作者
谢谢分享....学习鸟

论坛徽章:
0
3 [报告]
发表于 2012-04-30 20:54 |只看该作者
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP