Warning: Invalid argument supplied for foreach() in /web/website/www.ownlinux.cn/www/wp-content/plugins/alimama-deluxe/alimama-deluxe.php on line 925 代码阅读器| OwnLinux.org
20
11月

代码阅读器

Source Navigator 是 Red Hat 开发的一个 IDE,但我们一般不用它来开发,而是用来阅读源代码 ── 因为它能很好地解决文件定位和跳转问题。

Source Navigator 可从其官方网站上获取,也可直接从软件源中安装。在 Ubuntu 中,我们通过

sudo apt-get install sourcenav

安装,然后通过 snavigator 来运行。

运行第一步是要建立源代码的 project 以及扫描源代码文件,自动建立文件之间的索引。对 2.6 版本以上的 linux 来说,这项工作通常要花好几分钟。然后我们就可以畅游在 Source Code 中了。

官方网站:http://lxr.sourceforge.net/

DOWNLOAD

LXR 与 Source Navigator 类似,它也是分析阅读源代码的好工具。不同的是,它将源代码借助浏览器展示出来,文件间的跳转过程成了我熟悉的点击超链接动作。(LXR配置起有点麻烦请看下面)

配置步骤:
(1)安装lxr(版本为0.31,stable的版本),apache2,libapache2-mod-perl2,glimpse,perl
注:lxr 0.31版本是不需要有数据库支持的,所以MySQL和PostgreSQL是不需要的,而最新的0.9x的那些版本已经需要数据库支持了,我前面就是在数据库上花费了太多的时间,尤其是它不支持MySQL5,因为有release关键字的问题,非常ft。怎么安装我想ubuntu下大家都会,不用我多说了,apt一下或synaptic一下就可以了。
(2)lxr的安装目录为 /usr/share/lxr/,我们把需要索引的源代码放到/usr/share/lxr/source/下,目录名字为版本号,如2.6.17,然后新建文件/usr/share/lxr/source/versions,文件中写入2.6.17。创建文件/usr/share/lxr/source/defversion,意思为默认版本,我们写入2.6.17
注:我们可以放多个源代码目录在source目录下,名字可以任取,然后写入versions 即可。当然如果源码在其他路径下,也可以做一个软连接过来。
(3)建立索引目录,新建目录/usr/share/lxr/databases,然后在databases目录下创建目录2.6.17
(4)配置apache2,新建文件 /etc/apache2/sites-available/lxr,写入以下代码Alias /lxr /usr/share/lxr
Options All
AllowOverride All

注:这是让client访问apache2下http://localhost/linux时直接访问到/usr/share/lxr,以隐藏lxr的真实目录然后执行
guzhongshu@guzhongshu-laptop:~$sudo ln /etc/apache2/sites-available/lxr -s /etc/apache2/sites-enabled/lxr
创建文件/usr/share/lxr/http/.vtaccess ,写入以下代码:        
SetHandler cgi-script
注:这是为了让perl起作用,让apache2的mod_perl来执行http目录下的perl文件,而不是下载这个文件。
(5)配置LXR,主要修改的文件是/usr/share/lxr/http/lxr.conf,我的配置文件如下所示:
# Configuration file.  
# Define typed variable "v", read valueset from file.
variable: v, Version, [/usr/share/lxr/source/versions], [/usr/share/lxr/source/defversion]  
# Define typed variable "a".  First value is default.
variable: a, Architecture, (i386, alpha, m68k, mips, ppc, sparc, sparc64)  
# Define the base url for the LXR files.
baseurl:http://localhost/lxr/http/  
# These are the templates for the HTML heading, directory listing and # footer, respectively.
htmlhead: /usr/share/lxr/http/template-head
htmltail: /usr/share/lxr/http/template-tail
htmldir:  /usr/share/lxr/http/template-dir
# The source is here.
sourceroot: /usr/share/lxr/source/$v/
srcrootname: Linux
# "#include " is mapped to this directory (in the LXR source # tree)
incprefix: /include  
# The database files go here.
dbdir: /usr/share/lxr/databases/$v/  
# Glimpse can be found here.
glimpsebin: /usr/bin/glimpse  
# The power of regexps.  This is pretty Linux-specific, but quite 
# useful.  Tinker with it and see what it does.  (How's that for # documentation?)
map: /include/asm[^\/]*/ /include/asm-$a/
map: /arch/[^\/]+/ /arch/$a/
注:大家应该根据自己的系统环境来进行配置lxr.conf
(6) 生成数据文件
guzhongshu@guzhongshu-laptop:~$ cd /usr/share/lxr/source/
guzhongshu@guzhongshu-laptop:/usr/share/lxr/source$ sudo genxref 2.6.17/
        长时间等待,因为要扫描文本处理
guzhongshu@guzhongshu-laptop:/usr/share/lxr/source$ sudo mv fileidx ../databases/2.6.17/
guzhongshu@guzhongshu-laptop:/usr/share/lxr/source$ sudo mv xref ../databases/2.6.17/ 
        生成glimpse索引文件
guzhongshu@guzhongshu-laptop:/usr/share/lxr/source$ sudo glimpseindex -H . 2.6.17
guzhongshu@guzhongshu-laptop:/usr/share/lxr/source$ sudo mv .g* ../databases/2.6.17
        允许数据文件可访问
guzhongshu@guzhongshu-laptop:/usr/share/lxr/source$ sudo chmod +r ../databases/2.6.17/*
guzhongshu@guzhongshu-laptop:/usr/share/lxr/source$ sudo chmod +r ../databases/2.6.17/.g*
(7)重启apache2
guzhongshu@guzhongshu-laptop:/usr/share/lxr/source$ /etc/init.d/apache2 restart

官方网站:http://lxr.sourceforge.net/

DOWNLOAD

原载: OwnLinux.org
原文标题: 代码阅读器
原文链接:http://www.ownlinux.org/2008/11/20/linux-code-reader.html
OwnLinux.org 版权所有,转载时必须以链接形式注明作者和原始出处及本声明。否则,请勿转载!!


任何商业网站未经许可请勿转摘!本站将保留追究其法律责任的权利。

3 条评论了已经

发表评论

名字(必须)
邮箱(不会被公布)(必须)
网址

字体为 粗体 是必填项目,邮箱地址 永远不会 公布。

允许部分 HTML 代码:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
URLs(网站链接)必须完整有效 (比如: http://www.ownlinux.org),所有标签都必须完整的关闭。

超出部分系统将会自动分段及换行。

请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 可能 会被编辑或删除。

    站内搜索

    赞助商

    标签

    最近访问