Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129927
  • 博文数量: 47
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-30 12:26
文章分类
文章存档

2010年(32)

2009年(15)

我的朋友

分类: LINUX

2010-07-11 18:16:29

Cscope简介

                                              
  对于浏览源代码来说,在  里面也有很多工具可用,比如自带的 etags 就 不错,不过功能不如 Cscope 强大。 Cscope 并不像 etags 那样属于 Emacs , 它是一个独立的程序。它是一个具有完全 Unix 血统的程序,用于帮助开发人员 浏览源代码。它最初(那还是 PDP-11 的时代)是由 Bell 实验室开发,并且多年 以来一直是 AT&T Unix 商业发行版的一部分。它已经被用于管理超过两千万行代 码的工程。在2000年4月,多亏了  , Cscope 的源代码在 BSD 下开放了源代码。

Cscope 是一个交互式的基于屏幕使用的工具,用来帮助你:
       无须在厚厚的程序清单中翻来翻去就可以认识一个 C 程序的工作原理。
       无须熟悉整个程序就可以知道清楚程序 bug 所要修改的代码位置。
       检查提议的改动 (如添加一个枚举值) 可能会产生的效果。
       验证所有的源文件都已经作了需要的修改;例如给某一个现存的函数添加一个参数。
       在所有相关的源文件中对一个全局变量改名。
       在所有相关的位置将一个常数改为一个预处理符号。

 它被设计用来回答以下的问题:
       什么地方用到了这个符号?
       这是在什么地方定义的?
       这个变量在哪里被赋值?
       这个全局符号的定义在哪里?
       这个函数在源文件中的那个地方?
       那些函数调用了这个函数?
       这个函数调用了那些函数?
       信息 "out of space" 从哪来?
       这个源文件在整个目录结构中处于什么位置?
       哪些文件包含这个头文件?

安装和配置

首先到  上去下载最新的源代码包,编译安装。要在 Emacs 里面 使用,首先必须把 xcscope.el 拷贝到 load-path 里面包含的目录里面。并在~/.emacs 里面加上 (require 'xcscope) 就可以了,或者,如果你希望在打开 c 或者 c++ 文件的时候才加载 xcsope ,可以写:

(add-hook 'c-mode-common-hook
	  '(lambda ()
	    (require 'xcscope)))

如果源代码全部处于同一个目录下面,现在就可以使用了。否则,如果源代码有 多层目录,或者其他地方还有附加的源代码,则需要 cscope-indexer 脚本。把 那个脚本拷贝到系统 PATH 里面去(如 /usr/bin/)。如果所有的源代码以及子目 录都是在同一个目录下面的,只要执行 C-c s I(cscope-index-files) 就可以 生成 Cscope 的数据库,接下来就可以使用了。

使用简介

默认是的快捷键都是绑定到 C-c s 的前缀上面,如果嫌麻烦的话可以自己更改 快捷键绑定。这是默认的用于查找的键绑定:

C-c s s         Find symbol.
C-c s d         Find global definition.
C-c s g         Find global definition (alternate binding).
C-c s G         Find global definition without prompting.
C-c s c         Find functions calling a function.
C-c s C         Find called functions (list functions called
                from a function).
C-c s t         Find text string.
C-c s e         Find egrep pattern.
C-c s f         Find a file.
C-c s i         Find files #including a file.

下面是在搜索到的结果之间切换用的快捷键:

C-c s b         Display *cscope* buffer.
C-c s B         Auto display *cscope* buffer toggle.
C-c s n         Next symbol.
C-c s N         Next file.
C-c s p         Previous symbol.
C-c s P         Previous file.
C-c s u         Pop mark.

更详细的使用说明请参见 xcscope.el 文件头部的注释。

阅读(1107) | 评论(0) | 转发(0) |
0

上一篇:正则表达式和grep

下一篇:Bash 简介

给主人留下些什么吧!~~