免费注册 查看新帖 |

Chinaunix

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

ctag的问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-18 11:29 |只看该作者 |倒序浏览
用linuxforum的wheels 写的哪个文章的.Makefile .
生成了 这些文件.
cscope.files  cscope.in.out  cscope.out  cscope.po.out   tags

在当前目录下里用vim编辑器 tag命令 可以搜索源代码中的函数定义.
可是换了别的目录tag就不好用了.请问有什么好的解决办法?

论坛徽章:
0
2 [报告]
发表于 2005-12-18 12:09 |只看该作者
看着改改,放在~/.vimrc里面...

  1. if has("cscope")
  2.     set csprg=/usr/bin/cscope
  3.     set csto=0
  4.     set cst
  5.     set nocsverb
  6.     if filereadable("./cscope.out")
  7.         cs add ./cscope.out
  8.     elseif filereadable("../cscope.out")
  9.         cs add ../cscope.out
  10.     elseif filereadable("../../cscope.out")
  11.         cs add ../../cscope.out
  12.     elseif $CSCOPE_DB != ""
  13.         cs add $CSCOPE_DB
  14.     endif
  15.     set csverb
  16. endif
复制代码

论坛徽章:
0
3 [报告]
发表于 2005-12-18 12:58 |只看该作者
不好用啊

论坛徽章:
0
4 [报告]
发表于 2005-12-18 17:42 |只看该作者
我没用wheelz斑主的那个Makefile文件,只是照着他的HOWTO学会了浏览

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-12-18 18:20 |只看该作者
原帖由 albcamus 于 2005-12-18 17:42 发表
我没用wheelz斑主的那个Makefile文件,只是照着他的HOWTO学会了浏览


那你是怎么做的?

论坛徽章:
0
6 [报告]
发表于 2005-12-18 19:24 |只看该作者
我记得当时看他的那个贴子说他的makefile里面只是选择性的去除了一些目录而已,应该不会影响cscope的使用,vim里面的help有详细的cscope扩展使用说明,觉得需要用的时候这些问题自己应该可以解决。

论坛徽章:
0
7 [报告]
发表于 2005-12-18 19:30 |只看该作者
原帖由 mq110 于 2005-12-18 18:20 发表


那你是怎么做的?



可能al*说的是tags的操作那些,记得那贴al*好像有回...

al*老大,你的名字记不住哈,扩展符代替了,like other...

[ 本帖最后由 zalem 于 2005-12-18 19:31 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2005-12-18 19:49 |只看该作者
原帖由 zalem 于 2005-12-18 19:30 发表



可能al*说的是tags的操作那些,记得那贴al*好像有回...

al*老大,你的名字记不住哈,扩展符代替了,like other...



嗯,我说的就是ctags,还没用过cscope呢。 我的通常做法是用绝对路径生成tags,在对内核源代码每个子目录进行递归,生成指向顶极tags文件的符号链接。然后用Taglist浏览,左右分屏看

偶的ID好多人都记不住, 其实是因为Albert Camus的中译名一般是"阿尔贝·加缪",我就译回去叫AlbCamus  ^_^

论坛徽章:
0
9 [报告]
发表于 2005-12-19 10:54 |只看该作者
原帖由 albcamus 于 2005-12-18 17:42 发表
我没用wheelz斑主的那个Makefile文件,只是照着他的HOWTO学会了浏览:)

刚从百度的快照中把这篇文章给纠出来了,大家看看,看还有什么可以补充的没:
////////////////////////////////////////////////////////////////////////////
用tags/cscope看内核源代码-HOWTO

看大家讨论得热烈,我也写点。呵呵

其实内核原代码的Makefile就包含了make tags/TAGS的选项,
但是生成的tags太大,因为包含了drivers等不常用的目录。

因此参照内核的Makefile文件,写了一个Makefile,
用来生成ctags/cscope/etags。

这样,可以根据自己的需要,删除和添加目录。

我以前没有用过tags/cscope,不知道有没有更好的方法。欢迎指教。
也请大家补充tags/cscope的常用的和好用的命令,技巧。

一、用法

找一个空目录,把附件Makefile拷贝进去。
然后在该目录中选择性地运行如下make命令:

注:SRCDIR用来指定内核源代码目录,如果没有指定,
则缺省为/usr/src/linux/,如

$ make

将处理/usr/src/linux下的源文件,在当前目录生成ctags, cscope


1) 只创建ctags

$ make SRCDIR=/usr/src/linux-2.6.12/ tags

2) 只创建cscope

$ make SRCDIR=/usr/src/linux-2.6.12/ cscope

3) 创建ctags和cscope

$ make SRCDIR=/usr/src/linux-2.6.12/

4) 只创建etags

$ make SRCDIR=/usr/src/linux-2.6.12/ TAGS


二、处理时包括的内核源文件:

1) 不包括drivers,sound目录
2) 不包括无关的体系结构目录
3) fs目录只包括顶层目录和ext2,proc目录

对2.6.12.1内核,这样生成的tags大约12M,cscopes大约19M

三、最简单的ctags命令

----------------------
1) 进入

进入vim后,用

:tag func_name

跳到函数func_name

----------------------
2) 看函数(identifier)

想进入光标所在的函数,用

CTRL + ]

----------------------
3) 回退

回退用

CTRL + T

----------------------

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-12-19 10:56 |只看该作者
楼上的,  
这个 和wheelz版主写的差不多.
不过使用tag的时候就只能在已经生成的目录使用.

[ 本帖最后由 mq110 于 2005-12-19 11:03 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP