Linux内核开发  - 讨论区

标题:[zeuux-linux] zeuux-linux 摘要, 卷 7, 发布 7

2008年11月16日 星期日 11:07

独涉者 hackking在live.cn
星期日 十一月 16 11:07:21 CST 2008

oh,,,good..  非常好!!!正在找呢..

--------------------------------------------------
From: <zeuux-linux-request在zeuux.org>
Sent: Sunday, November 16, 2008 1:59 AM
To: <zeuux-linux在zeuux.org>
Subject: zeuux-linux 摘要, 卷 7, 发布 7

> 想在 zeuux-linux 邮件列表发言,请写信给:
> zeuux-linux在zeuux.org
>
> 要订阅或者退订列表,可以访问万维网地址:
> http://www.zeuux.org/mailman/listinfo/zeuux-linux
> 或者可以向:
> zeuux-linux-request在zeuux.org
> 发送主题或者正文为'help'的邮件。
>
> 您可以通过邮件地址:
> zeuux-linux-owner在zeuux.org
> 联系到此列表的管理员。
>
> 当回信时,请给一个适当的标题,这样会比 "Re:
> Contents of zeuux-linux digest..."更清楚明白。
>
>
> 本日主题:
>
>   1. 使用Vim+Ctags+Cscope阅读源代码 (Jianjun Kong)
>   2. Re: [XiYouLinux] 使用Vim+Ctags+Cscope阅读源代码 (Niu Tao)
>   3. Re: [XiYouLinux] 使用Vim+Ctags+Cscope阅读源代码
>      (Jianjun Kong)
>   4. Re: [XiYouLinux] Re: 使用Vim+Ctags+Cscope阅读源代码
>      ( Américo Wang )
>   5. Re: [XiYouLinux] 使用Vim+Ctags+Cscope阅读源代码
>      ( Américo Wang )
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sat, 15 Nov 2008 15:05:07 +0800
> From: Jianjun Kong <kongjianjun在gmail.com>
> Subject: [zeuux-linux] 使用Vim+Ctags+Cscope阅读源代码
> To: Xiyou-Linux-Group <xiyoulinux在googlegroups.com>
> Cc: zeuux-linux在zeuux.org, 西电Linux <xidian_linux在googlegroups.com>
> Message-ID: <20081115070507.GA23617在ubuntu>
> Content-Type: text/plain; charset=utf-8
>
>
> 最近有好几个人问我使用什么阅读源代码,网上查了一下,关于Vim+Ctags+Cscope阅读源码的资料很多,但有些讲得太简略,于是自己整理了一下。
> 欢迎任何改进反馈 ;)
> -------------------
>
>                        使用Vim+Ctags+Cscope阅读源代码
>
>                                                         --孔建军(Kongove.CN)
> 
> 2008.11.15
>
> 代码阅读工具简介
>
> 对于学习Linux内核的人来说,源代码的阅读尤为重要。因为所有设计思想、内部机制都是
> 以代码的形式实现,所有的资料也都是为了更好的诠释代码。那么一个好的阅读工具,能 
> 
> 够提高阅读的效率和效果。常见的代码阅读工具有,Source Navigator、Source 
> Insight
> 、lxr、Cscope等。
>
>  • "Source Navigator"是红帽子公司的,以GNU GPL发布,可从官方网站[1]下载使用。 
> 
>  • "Source Insight"目前只有Windows平台的,官方网站[2]。需要注册才能使用,或者
>    从网上下载注册机生成注册码。在Linux下通过wine模拟虽然可以方便使用,但它毕竟
>    是Windows平台的东西,并不能很自由的使用。
>  • lxr(linux cross reference)[3]为程序源代码建立索引数据库,利用perl脚本CGI动态
>    生成包含源码的web页面,你可以用任何一种浏览器查阅。缺点是需要服务器支持,还 
> 
>    有速度。
>  • "Cscope"[4]为终端下的代码阅读工具,资源消耗少,对那些忠于命令行的行操作的人
>    ,使用起来更加方便、灵活。这也是这篇文章推荐使用的一个重要原因。也有人把 
> 
>    Cscope和Emasc绑定阅读源码。当然工具的选取,也取决于个人习惯。
>
> Vim+Ctags+Cscope
>
> cscope的工作需要vim、ctags的配合,它们都是基于命令行的。在Ubuntu下,用户只需执
> 行“sudo apt-get install cscope cscope-indexer ctags vim-full”即可完成软件安装。
> 下面只是给出了三种工具的常用方法,更多功能可查看man手册,或者官方文档。
>
> Vim
>
> vim被看作是专门为程序员打造的文本编辑器,其丰富的编辑命令都是常用的简单字符,用 
> 
> 户很容易上手。vim可对180多种语言的语法高亮,对C语言自动缩进,真则表达式字符匹配
> 查找,功能强大,并支持多个操作系统平台。关于vim的使用,这里不做讲解。vim中文文
> 档[5]。
> 在Ubuntu下默认安装的vim,没有语法加亮功能。所以需要安装vim-full,并在vim 
> 配置
> 文件 ~/.vimrc中添加一行 "syntax on" 这样在vim中打开的源码就有了语法高亮显示。 
> 
> vim自带了很多颜色主题,可以直接选取下面一行添加到vim配置文件当中,重新打开vim即
> 可生效。
>
> colorscheme elflord "我使用这个
> colorscheme darkblue
> colorscheme evening
> colorscheme murphy
> colorscheme torte
> colorscheme desert
>
> Ctags
>
> 在源代码根目录下执行 ctags -r 命令用来为程序源代码生成标签文件,其-r选项表示递
> 归操作,同时为子目录也生成标签文件。vim利用生成的标签文件,可以进行相应检索、并 
> 
> 在不同的文件C语言元素之间来回切换。
>
> 在vim中ctags的简单使用
> 1) 跳转到指定的函数进入vim后,用 “:tag func_name“ 跳到函数func_name处。使用tag
> 命令时,可以使用TAB键进行匹配查找,继续按TAB键向下切换。
> 某个函数有多个定义时
>
> :tag
> 跳到第一个定义处,优先跳转到当前文件
> :tnext
> 跳到第一个
> :tfirst
> 跳到前count个
> :[count]tprevious
> 跳到后count个
> :[count]tnext
> 跳到最后一个
> :tlast
> 你也可以在所有tagname中选择:
> :tselect tagname
>
> 如果想跳到包含block的标识符:“tag /block” 然后用TAB键来选择。这里'/'就是告诉vim
> 'block'是一个语句块标签。
> 2)用“CTRL + ]“快捷键,跳转到光标所在函数标识符的定义处。
> 3)使用“CTRL + T”退回上层。如果想在以write_开头的标识符中选择一下, 
> :tselect /^
> write_ 这里,'^'表示开头,同理,'$'表示末尾。多个同名的标识符
>
> Cscope
>
> 运行cscope命令,出现两个面板,上方是一个查找结果的显示面板,下方是一个查找条件
> 指定面板。使用TAB键在两个面板间切换,也可使用上下左右方向件和翻页键在同一面板内
> 贴换位置。选中显示面板的某个项,回车即可进入该文件,这是调用vim打开文件,这时就
> 可以结合ctags使用了。当然也可以直接使用vim打开文件,结合ctags阅读源码。
> 使用前,必须现使用“cscope-indexer -r”命令递归生成索引信息文件。特殊情况下,还需
> 要用户使用find命令,主动生成索引信息文件,并指定给cscope工具。 cscope提供了如下
> 九种查询方式:
>
> Find this C symbol:
> #查找指定的C符号
> Find this global definition:
> #查找指定的全局定义
> Find functions called by this function:
> #查找指定函数调用的函数
> Find functions calling this function:
> #查找调用指定函数的函数
> Find this text string:
> #查找字符串
> Change this text string:
> #修改指定字符串
> Find this egrep pattern:
> #查找匹配字符
> Find this file:
> #查找指定文件
> Find files #including this file:
> #指定引用头文件进行查找
>
> 在对应某一项中输入查找条件,回车即可进行查询,并将结果显示在显示面板。
>
> 应用实例
>
> 下面以使用cscope阅读内核源代码为例:
>
> $ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.6.tar.bz2
> #从Linux内核官网下载内核源代码
> $ tar xvfj linux-2.6.27.6.tar.bz2
> #解压文件
> $ cd linux-2.6.27.6
> #进入源代码根目录
> $ ctags -r
> #递归生成标签文件
> $ cscope-indexer -r
> #递归生成索引信息文件
> $ cscope
> #使用cscope阅读源码
>
> 标签文件、索引信息文件只需要第一次或者代码发生变动时生成,以后使用直接运行
> cscope即可。
>
>
>
> [1] http://sourcenav.sourceforge.net/
> [2] http://www.sourceinsight.com/
> [3] http://lxr.linux.no/
> [4] http://cscope.sourceforge.net/
> [5] http://vcd.gro.clinux.org/
>
> -- 
> Jianjun Kong @_@ Happy Hacking
> Homepage: http://kongove.cn/
> Gtalk: kongjianjun在gmail.com
>
>
> ------------------------------
>
> Message: 2
> Date: Sat, 15 Nov 2008 15:09:27 +0800
> From: "Niu Tao" <niutao0602在gmail.com>
> Subject: Re: [zeuux-linux] [XiYouLinux]
> 使用Vim+Ctags+Cscope阅读源代码
> To: "Jianjun Kong" <kongjianjun在gmail.com>
> Cc: zeuux-linux在zeuux.org, Xiyou-Linux-Group
> <xiyoulinux在googlegroups.com>, 西电Linux
> <xidian_linux在googlegroups.com>
> Message-ID:
> <9ce30fc10811142309q6fbabceap16a1420e3fdbeec4在mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> 2008/11/15 Jianjun Kong <kongjianjun在gmail.com>:
>>
>> 最近有好几个人问我使用什么阅读源代码,网上查了一下,关于Vim+Ctags+Cscope阅读源码的资料很多,但有些讲得太简略,于是自己整理了一下。
>> 欢迎任何改进反馈 ;)
>> -------------------
>>
>>                        使用Vim+Ctags+Cscope阅读源代码
>>
>>                                                         --孔建军(Kongove.CN)
>> 
>> 2008.11.15
>>
>> 代码阅读工具简介
>>
>> 对于学习Linux内核的人来说,源代码的阅读尤为重要。因为所有设计思想、内部机制都是
>> 以代码的形式实现,所有的资料也都是为了更好的诠释代码。那么一个好的阅读工具,能 
>> 
>> 够提高阅读的效率和效果。常见的代码阅读工具有,Source Navigator、Source 
>> Insight
>> 、lxr、Cscope等。
>>
>>  • "Source Navigator"是红帽子公司的,以GNU GPL发布,可从官方网站[1]下载使用。 
>> 
>>  • "Source Insight"目前只有Windows平台的,官方网站[2]。需要注册才能使用,或者
>>    从网上下载注册机生成注册码。在Linux下通过wine模拟虽然可以方便使用,但它毕竟
>>    是Windows平台的东西,并不能很自由的使用。
>>  • lxr(linux cross reference)[3]为程序源代码建立索引数据库,利用perl脚本CGI动态
>>    生成包含源码的web页面,你可以用任何一种浏览器查阅。缺点是需要服务器支持,还 
>> 
>>    有速度。
>>  • "Cscope"[4]为终端下的代码阅读工具,资源消耗少,对那些忠于命令行的行操作的人
>>    ,使用起来更加方便、灵活。这也是这篇文章推荐使用的一个重要原因。也有人把 
>> 
>>    Cscope和Emasc绑定阅读源码。当然工具的选取,也取决于个人习惯。
>>
>> Vim+Ctags+Cscope
>>
>> cscope的工作需要vim、ctags的配合,它们都是基于命令行的。在Ubuntu下,用户只需执
>> 行"sudo apt-get install cscope cscope-indexer ctags vim-full"即可完成软件安装。
>> 下面只是给出了三种工具的常用方法,更多功能可查看man手册,或者官方文档。
>>
>> Vim
>>
>> vim被看作是专门为程序员打造的文本编辑器,其丰富的编辑命令都是常用的简单字符,用 
>> 
>> 户很容易上手。vim可对180多种语言的语法高亮,对C语言自动缩进,真则表达式字符匹配
>> 查找,功能强大,并支持多个操作系统平台。关于vim的使用,这里不做讲解。vim中文文
>> 档[5]。
>> 在Ubuntu下默认安装的vim,没有语法加亮功能。所以需要安装vim-full,并在vim 
>> 配置
>> 文件 ~/.vimrc中添加一行 "syntax on" 这样在vim中打开的源码就有了语法高亮显示。 
>> 
>> vim自带了很多颜色主题,可以直接选取下面一行添加到vim配置文件当中,重新打开vim即
>> 可生效。
>>
>> colorscheme elflord "我使用这个
>> colorscheme darkblue
>> colorscheme evening
>> colorscheme murphy
>> colorscheme torte
>> colorscheme desert
>>
>> Ctags
>>
>> 在源代码根目录下执行 ctags -r 命令用来为程序源代码生成标签文件,其-r选项表示递
>> 归操作,同时为子目录也生成标签文件。vim利用生成的标签文件,可以进行相应检索、并 
>> 
>> 在不同的文件C语言元素之间来回切换。
>>
>> 在vim中ctags的简单使用
>> 1) 跳转到指定的函数进入vim后,用 ":tag func_name" 跳到函数func_name处。使用tag
>> 命令时,可以使用TAB键进行匹配查找,继续按TAB键向下切换。
>> 某个函数有多个定义时
>>
>> :tag
>> 跳到第一个定义处,优先跳转到当前文件
>> :tnext
>> 跳到第一个
>> :tfirst
>> 跳到前count个
>> :[count]tprevious
>> 跳到后count个
>> :[count]tnext
>> 跳到最后一个
>> :tlast
>> 你也可以在所有tagname中选择:
>> :tselect tagname
>>
>> 如果想跳到包含block的标识符:"tag /block" 然后用TAB键来选择。这里'/'就是告诉vim
>> 'block'是一个语句块标签。
>> 2)用"CTRL + ]"快捷键,跳转到光标所在函数标识符的定义处。
>> 3)使用"CTRL + T"退回上层。如果想在以write_开头的标识符中选择一下, 
>> :tselect /^
>> write_ 这里,'^'表示开头,同理,'$'表示末尾。多个同名的标识符
>>
>> Cscope
>>
>> 运行cscope命令,出现两个面板,上方是一个查找结果的显示面板,下方是一个查找条件
>> 指定面板。使用TAB键在两个面板间切换,也可使用上下左右方向件和翻页键在同一面板内
>> 贴换位置。选中显示面板的某个项,回车即可进入该文件,这是调用vim打开文件,这时就
>> 可以结合ctags使用了。当然也可以直接使用vim打开文件,结合ctags阅读源码。
>> 使用前,必须现使用"cscope-indexer -r"命令递归生成索引信息文件。特殊情况下,还需
>> 要用户使用find命令,主动生成索引信息文件,并指定给cscope工具。 cscope提供了如下
>> 九种查询方式:
>>
>> Find this C symbol:
>> #查找指定的C符号
>> Find this global definition:
>> #查找指定的全局定义
>> Find functions called by this function:
>> #查找指定函数调用的函数
>> Find functions calling this function:
>> #查找调用指定函数的函数
>> Find this text string:
>> #查找字符串
>> Change this text string:
>> #修改指定字符串
>> Find this egrep pattern:
>> #查找匹配字符
>> Find this file:
>> #查找指定文件
>> Find files #including this file:
>> #指定引用头文件进行查找
>>
>> 在对应某一项中输入查找条件,回车即可进行查询,并将结果显示在显示面板。
>>
>> 应用实例
>>
>> 下面以使用cscope阅读内核源代码为例:
>>
>> $ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.6.tar.bz2
>> #从Linux内核官网下载内核源代码
>> $ tar xvfj linux-2.6.27.6.tar.bz2
>> #解压文件
>> $ cd linux-2.6.27.6
>> #进入源代码根目录
>> $ ctags -r
> ctags -R
>> #递归生成标签文件
>> $ cscope-indexer -r
>> #递归生成索引信息文件
>> $ cscope
>> #使用cscope阅读源码
>>
>> 标签文件、索引信息文件只需要第一次或者代码发生变动时生成,以后使用直接运行 
>> 
>> cscope即可。
>>
>>
>>
>> [1] http://sourcenav.sourceforge.net/
>> [2] http://www.sourceinsight.com/
>> [3] http://lxr.linux.no/
>> [4] http://cscope.sourceforge.net/
>> [5] http://vcd.gro.clinux.org/
>>
>> --
>> Jianjun Kong @_@ Happy Hacking
>> Homepage: http://kongove.cn/
>> Gtalk: kongjianjun在gmail.com
>>
>> --~--~---------~--~----~------------~-------~--~----~
>> 要退订此论坛请发邮件至 xiyoulinux-unsubscribe在googlegroups.com
>> 更多选项: http://groups.google.com/group/xiyoulinux?hl=zh-CN
>> 提问前建议您阅读:http://www.xiyoulinux.cn/blog/?p=64
>> 也请查看我们的FAQ:http://xiyoulinux.cn/wiki/index.php?title=FAQ
>> -~----------~----~----~----~------~----~------~--~---
>>
>>
>
>
>
> -- 
> ------------------
> running out of a problem is not a solution,sit and face it
>
> ------------------------------
>
> Message: 3
> Date: Sat, 15 Nov 2008 15:18:16 +0800
> From: Jianjun Kong <kongjianjun在gmail.com>
> Subject: Re: [zeuux-linux] [XiYouLinux]
> 使用Vim+Ctags+Cscope阅读源代码
> To: Niu Tao <niutao0602在gmail.com>
> Cc: zeuux-linux在zeuux.org, Xiyou-Linux-Group
> <xiyoulinux在googlegroups.com>, 西电Linux
> <xidian_linux在googlegroups.com>
> Message-ID: <20081115071816.GA23777在ubuntu>
> Content-Type: text/plain; charset=utf-8
>
> On Sat, Nov 15, 2008 at 03:09:27PM +0800, Niu Tao wrote:
>>2008/11/15 Jianjun Kong <kongjianjun在gmail.com>:
>>>                        使用Vim+Ctags+Cscope阅读源代码
>
> ....
>>> $ cd linux-2.6.27.6
>>> #进入源代码根目录
>>> $ ctags -r
>>ctags -R
>
> Thanks.
>
> 已更新到:http://www.kongove.cn/web/doc/vim-ctags-cscope-source.html
>
>>> #递归生成标签文件
>>> $ cscope-indexer -r
>>> #递归生成索引信息文件
>>> $ cscope
>>> #使用cscope阅读源码
>>>
>>> 标签文件、索引信息文件只需要第一次或者代码发生变动时生成,以后使用直接运行 
>>> 
>>> cscope即可。
>>>
>>>
>>>
>>> [1] http://sourcenav.sourceforge.net/
>>> [2] http://www.sourceinsight.com/
>>> [3] http://lxr.linux.no/
>>> [4] http://cscope.sourceforge.net/
>>> [5] http://vcd.gro.clinux.org/
>
> -- 
> Jianjun Kong @_@ Happy Hacking
> Homepage: http://kongove.cn/
> Gtalk: kongjianjun在gmail.com
>
>
> ------------------------------
>
> Message: 4
> Date: Sat, 15 Nov 2008 17:42:58 +0000
> From: " Américo Wang " <xiyou.wangcong在gmail.com>
> Subject: Re: [zeuux-linux] [XiYouLinux] Re:
> 使用Vim+Ctags+Cscope阅读源代码
> To: "xd linux" <xdlinux在gmail.com>
> Cc: zeuux-linux在zeuux.org, Jianjun Kong <kongjianjun在gmail.com>,
> Xiyou-Linux-Group <xiyoulinux在googlegroups.com>, "helight. xu"
> <helight.xu在gmail.com>
> Message-ID:
> <2375c9f90811150942w1f817adfn6802520fbd03ec69在mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> 2008/11/15 xd linux <xdlinux在gmail.com>:
>> 偷偷地告诉你:yes ^_^
>>
>
> 第2遍:不要在顶部回复!
>
> 另外,这里是linux论坛,讨论windows的东西是偏离话题的!停止!!
>
> ------------------------------
>
> Message: 5
> Date: Sat, 15 Nov 2008 17:59:51 +0000
> From: " Américo Wang " <xiyou.wangcong在gmail.com>
> Subject: Re: [zeuux-linux] [XiYouLinux]
> 使用Vim+Ctags+Cscope阅读源代码
> To: "Jianjun Kong" <kongjianjun在gmail.com>
> Cc: zeuux-linux在zeuux.org, Xiyou-Linux-Group
> <xiyoulinux在googlegroups.com>
> Message-ID:
> <2375c9f90811150959l47544910ye48020a7ea5985a5在mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
>
> 2008/11/15 Jianjun Kong <kongjianjun在gmail.com>:
>>
>> 最近有好几个人问我使用什么阅读源代码,网上查了一下,关于Vim+Ctags+Cscope阅读源码的资料很多,但有些讲得太简略,于是自己整理了一下。
>> 欢迎任何改进反馈 ;)
>> -------------------
>>
>>                        使用Vim+Ctags+Cscope阅读源代码
>>
>>                                                         --孔建军(Kongove.CN)
>> 
>> 2008.11.15
>>
>> 代码阅读工具简介
>>
>> 对于学习Linux内核的人来说,源代码的阅读尤为重要。因为所有设计思想、内部机制都是
>> 以代码的形式实现,所有的资料也都是为了更好的诠释代码。那么一个好的阅读工具,能 
>> 
>> 够提高阅读的效率和效果。常见的代码阅读工具有,Source Navigator、Source 
>> Insight
>> 、lxr、Cscope等。
>
>
> 很明显你漏了Kscope,kde下很强大的工具,我个人认为比source navigator好多了。 
> 
>
>
>
>>
>>  • "Source Navigator"是红帽子公司的,以GNU GPL发布,可从官方网站[1]下载使用。 
>> 
>
>
> 说实话,source navigator给我的印象很差。。。
>
>
>>  • "Source Insight"目前只有Windows平台的,官方网站[2]。需要注册才能使用,或者
>>    从网上下载注册机生成注册码。在Linux下通过wine模拟虽然可以方便使用,但它毕竟
>>    是Windows平台的东西,并不能很自由的使用。
>
> 既然如此那最好连提都别提。:-)
>
>
>>  • lxr(linux cross reference)[3]为程序源代码建立索引数据库,利用perl脚本CGI动态
>>    生成包含源码的web页面,你可以用任何一种浏览器查阅。缺点是需要服务器支持,还 
>> 
>>    有速度。
>>  • "Cscope"[4]为终端下的代码阅读工具,资源消耗少,对那些忠于命令行的行操作的人
>>    ,使用起来更加方便、灵活。这也是这篇文章推荐使用的一个重要原因。也有人把 
>> 
>>    Cscope和Emasc绑定阅读源码。当然工具的选取,也取决于个人习惯。
>>
>
> 再一次:所有这些工具都无法对函数指针进行跟踪(你知道为什么)。而grep在任何情况下
> 都可以。所以我现在基本上只用grep了。
>
> ------------------------------
>
> _______________________________________________
> zeuux-linux mailing list
> zeuux-linux在zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-linux
>
>
> 结束zeuux-linux 摘要, 卷 7, 发布 7
> *****************************************
> 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-linux]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号