Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119670
  • 博文数量: 26
  • 博客积分: 1441
  • 博客等级: 上尉
  • 技术积分: 265
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-27 20:35
文章存档

2011年(2)

2010年(5)

2009年(19)

我的朋友

分类: LINUX

2010-04-12 14:28:05

目录

解压源代码,安装ctagscscope

各个软件的版本

Vim的简单配置

cscope界面中查询:

Vim中调用cscope进行查询(地行模式以及快捷键模式),

通过ctags实现查询(底行模式及快捷键)。

 

解压源代码,安装ctagscscope

透过命令:sudo apt-get install ctags cscope 这个命令安装这两个工具软件。

各个软件的版本

Ubuntu9.04环境下,vim 版本7.2.79

Vim的简单配置

中有vim中使用cscope的方法,同时给出了一个vim

cscope界面中查询:

在解压的内核源代码根目录中进行:

ctags –R  生成tags文件,在执行cscope –R ,生成cscope.out 数据库文件并进入cscope界面。

menu处也就是提示按什么方式查询的地方按下 问号 (?)给出提示

 

已经生成了tagscscope.out 文件后,不想再cscope界面中查询,而是直接在vim中调用cscope.out ctags文件也可以,但是必须保证vim 打开的文件同一个目录中有ctagscscope.out 文件。Ctagscscope使用方法如下:

VIM使用cscope查找

1,加载cscope.out文件
在VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库,然后就可以调用“cscope find”命令进行查找了。VIM支持8种cscope的查询功能,如下:例如,我们想在代码中查找调用work()函数的函数,我们可以输入:“:cs find c work”,回车后发现没有找到匹配的功能,可能并没有函数调用work()。我们再输入“:cs find s work”,查找这个符号出现的位置,现在vim列出了这个符号出现的所有位置。我们还可以进行字符串查找,它会双引号或单引号括起来的内容中查找。还可以输入一个正则表达式,这类似于egrep程序的功能。
在源代码目录下打开vim。要使用cscope查找就必须加载cscope.out文件.在vim命令行下执行:

:cs add cscope.out

在vim命令行下执行:

:cs help

cscope commands:

add  : Add a new database             (Usage: add file|dir [pre-path] [flags])

find : Query for a pattern            (Usage: find c|d|e|f|g|i|s|t name)

       c: Find functions calling this function

       d: Find functions called by this function

       e: Find this egrep pattern

       f: Find this file

       g: Find this definition

       i: Find files #including this file

       s: Find this C symbol

       t: Find assignments to

help : Show this message              (Usage: help)

kill : Kill a connection              (Usage: kill #)

reset: Reinit all connections         (Usage: reset)

show : Show connections               (Usage: show)


s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文
当然在底行模式下介键入 help 会弹出 vim的帮助。
2,使用cscope查找do_fork函数的定义:
在vim命令行下执行:

:cs f g do_fork

就可以查看do_fork的全局定义了。

cscope常用快捷键:

先按 ctrl+\ 然后 再按以下键:  

1.                   c: 查找该函数被调用的位置   

2.                   d: 查找该函数调用了哪些函数   

3.                   e: 查找指定的正规表达式 f: 查找指定的文件   

4.                   g: 查找指定标识符的定义位置   

5.                   i: 查找该文件在哪些地方被包含   

6.                   s: 查找指定标识符的使用位置   

7.                 t: 查找指定的文本字符串  

 

在VIM中使用tags查找

1) 跳转到指定的函数进入vim后,用 “:tag func_name“ 跳到函数func_name处。使用tag命令时,可以使用TAB键进行匹配查找,继续按TAB键向下切换。
某个函数有多个定义时

:tag
跳到第一个定义处,优先跳转到当前文件
:tnext
跳到第一个
:tfirst
跳到前count个
:[count]tpreviouss
跳到后count个
:[count]tnext
跳到最后一个
:tlast
你也可以在所有tagname中选择:
:tselect tagname
关于tags的其它用法可以在vim中执行”:help tags”命令进行查询。

在安装了cscope和ctags的情况下,以下命令特别好使,他们现在cscope.out 数据库中查找,若没有则在ctags中查找

ctrl+]:在函数调用的地方跳转到函数定义的地方
ctrl+t:返回上一个查找的地方

注:本文中有部分是从几个博客中摘抄的(试验过可行),对作者表示感谢。

阅读(5433) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~