源代码阅读利器 Source Insight使用指导
最近看源代码,很痛苦,找个神器协助. Source Insight
使用3.5版本 汉化 http://www.newasp.net/soft/8829.html
指导主要来自官网 http://www.sourceinsight.com.cn/tech3.htm
作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读变得尤为困难。
当然Linux下的vim和emacs编辑程序并不是没有提供变量、函数搜索,彩色显示程序语句等功能。它们的功能是非常强大的。比如,vim和emacs就各自内嵌了一个标记程序,分别叫做ctag和etag,通过配置这两个程序,也可以实现功能强大的函数变量搜索功能,但是由于其配置复杂,linux附带的有关资料也不是很详细,而且,即使建立好标记库,要实现代码彩色显示功能,仍然需要进一步的配置(在另一片文章,我将会讲述如何配置这些功能),同时,对于大多数爱好者来说,可能还不能熟练使用vim和emacs那些功能比较强大的命令和快捷键。 为了方便的学习Linux源程序,我们不妨回到我们熟悉的window环境下,也算是“师以长夷以制夷”吧。但是在Window平台上,使用一些常见的集成开发环境,效果也不是很理想,比如难以将所有的文件加进去,查找速度缓慢,对于非Windows平台的函数不能彩色显示。Source Insight3.0,它是一个Windows平台下的共享软件,可以从 http://www.sourceinsight.com/上边下载30天试用版本。由于Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码弄到Windows平台下,这一点可以通过在linux平台上将/usr/src目录下的文件拷贝到Windows平台的分区上,或者从网上光盘直接拷贝文件到Windows平台的分区来实现。 安装Source Insight并启动程序,可以进入图1界面。在工具条上有几个值得注意的地方,如图所示,图中内凹左边的是工程按钮,用于显示工程窗口的情况;右边的那个按钮按下去将会显示一个窗口,里边提供光标所在的函数体内对其他函数的调用图,通过点击该窗体里那些函数就可以进入该函数所在的地方。 |
图1 Source Insight界面图 |
由于Source Insight实质上是一个支持多种开发语言(java,c ,c++等等)的编辑器,只不过由于其查找、定位、彩色显示等功能的强大,而被我们当成源代码阅读工具使用。所以,为了有效的阅读源程序,首先必须选择功能菜单上的 “Project”选项的子菜单“New Project”新建一个项目,项目名称可以自由选定,当然也可以选择删除(Remove)一个项目。当删除一个项目的时候,并不删除原有的源代码文件,只是将该软件生成的那些工程辅助文件删除。设定之后,将会弹出一个对话框如图2,接受默认选择,如果,硬盘空间足够,可以将第一个复选框选上,该选项将会需要与源代码大致同等的空间来建立一个本地数据库以加快查找的速度。 |
图2 工程设置 |
点击“OK”按钮,接受选择后,将会有一个新的对话框弹出,在这个对话框里,可以选择将要阅读的文件加入工程,一种方式是通过在File Name中输入要阅读源代码文件的名称,点击“Add”按钮将其加入,也可以通过其中“Add All”和“Add Tree”两个按钮可以将选中目录的所有文件加入到工程中,其中“Add All”选项会提示加入顶层文件和递归加入所有文件两种方式,而“Add Tree”相当于“Add All”选项的递归加入所有文件,可以根据需要使用,就我来说,更喜欢“Add Tree”一些。由于该程序采用了部分打开文件的方式,没有用到的文件不会打开,所以,加入数千个文件也不用担心加入的文件超出程序的所能容忍的最大值,我就是采用“Add Tree”的方式将Linux2.4内核的四千五百九十一个文件加入的。 |
图3 添加文件 |
加入文件后,点击一个文件,可以出现使用界面,如图4所示,其中,右边的那个窗口(Linux Project,即工程窗口)缺省按照字母顺序列出当前工程中所有的文件。 |
图4 工作窗口 |
点击一个文件就可以打开该文件,显示如图5所示,进入到右边的那个窗口分别可以以文件列表的方式,列出所有的文件,每个窗体下边有一排按钮,左边的窗口(21142.c)从左至右分别为:按字母顺序排列所有标记、按照文件中行数顺序排列标记、按照类型排列标记、浏览本地文件标记、标记窗口属性。右边的窗口(Linux Project)从左至右分别为:按字母顺序文件列表、显示文件夹、按照文件类型归类文件、全部文件的所有标记列表、按照标记类型归类标记、跳转到定义处、显示标记信息、浏览工程标记、查找函数调用、工程属性,其中全部文件的所有标记列表选项可能要一段时间抽取标记,同步到数据库去,如果开始选择了建立标记数据库,将会在今后节省同步时间,最有用的莫过于浏览标记信息和查找函数调用,前者可以通过“Jump”按钮在不同的地方查找同样的标志,还可以通过“Reference”按钮结合后者进行全局的标记查找。
右边窗口(工程):
左边窗口(文件):
|
Reference功能是Source Insight的特色之一,它可以在速度极快的在整个工程中找到所有的标记,并且在该行程序的前边加上红色箭头的小按钮链接上。图6是一个Reference搜索后的结果,它可以有两种模式,一种集中显示结果,图6显示的就是这种模式,在这种模式下,可以通过前边的红色箭头小按钮进入另外一种模式,该标记的具体的所在处,也可以通过标记的具体所在处点击红色箭头小按钮进入警种模式,还可以通过工具条上的两个红色小箭头直接在第二种模式下前后移动,察看相应信息。它的这个强大的功能使得阅读Linux源程序有如神助。但是要注意的是,当进行了第二次“Reference”时,它会提示你将结果集附加在第一个结果集的后边还是取代第一个结果集。如果选择前者,不能对结果集根据前后两次搜索结果进行分类,然后在其子类里进行移动,只能在整个结果集里移动;如果,选择后者,结果集将会被替换为第二次搜索的结果,略微有些不方便。 |
图6 Reference的搜索结果 |
当然,Source Insight 还提供了一些其他常见的便利。比如:右键菜单几乎包含了程序的所有功能,可以在编辑窗口为程序加上行号,还可以统计整个工程的程序行数,当然还有功能强大却用不上自动完成功能,似乎连它的30天试用期也是别有用心――可以迫使你尽可能快速的阅读源程序,其他一些技巧大家可以在使用过程中慢慢摸索。不妨马上去下载一个,去开始Linux内核探险之旅吧 |
源代码阅读利器 Source Insight使用指导相关推荐
- 代码阅读神器Source Insight
在软件行业工作了好多年了,期间使用过各种IDE:Visual Studio, Eclipse,IntelliJ IDEA,PyCharm, Sublime,Source Insight ... 现在还 ...
- 超级好用的代码阅读器source insight破解版安装和使用
1.source insight安装 由于Source Insight是收费的,本文是叙述一下 4.0 破解版安装过程. (1)安装:点击sourceinsight_4.0.86.0-setup.ex ...
- linux源码阅读神器,Ubuntu下安装LXR Linux源代码阅读利器
1.安装apache2 sudo apt-get install apache2 2.安装lxr sudo apt-get install lxr 3. 在/etc/apache2/httpd.con ...
- understand linux 64,Understand-4.0.877-Linux-64bit.tgz最新版本2017年源代码阅读利器,养眼theme之配置...
http://latest.scitools.com/Understand/Understand-4.0.877-Linux-64bit.tgz Understand软件的功能主要定位于代码的阅读理解 ...
- linux 修改内核源码,Source Insight阅读linux内核源代码——根据其他文章修改
由于Source Insight实质上是一个支持多种开发语言(java,c ,c++等等)的编辑器,只不过由于其查找.定位.彩色显示等功能的强大,而被我们当成源代码阅读工具使用. Step 2:新建项 ...
- 【Android 系统开发】使用 Source InSight 阅读 Android 源码
1. 安装 Source Insight (1) Source Insight 相关资源 安装相关资源 : -- 下载地址 : http://www.sourceinsight.com/down35. ...
- 随想录(怎么用source insight阅读kernel代码)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 大家都知道,linux kernel代码很多,文件多,行数多.作为学习和开发来说,阅读kerne ...
- Source Insight——C/C++代码阅读器
背景 今天因为要看一个相关课题的C源码,而我又不专门学C所以就没有关于C的IDE.我本来用笔记本阅读器来看,是在太辛苦了. 后来看到了一篇博客,推荐了Source Insight软件,软件小,还能自动 ...
- source insight 保存时删除多余空格,去除多余空格 space tab键
上传源码时最好把空格行去掉,以前介绍了使用notepad++,现在发现,习惯用source insight的人士也可以很easy的去掉了: Options->Perferences->Fi ...
最新文章
- Template Method(模板方法)模式
- MFCC特征参数提取(一)(基于MATLAB和Python实现)
- 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录
- 配置方法_CISCO防火墙端口映射配置方法
- pcie固态硬盘_主板2个M. 2接口,哪个m2插槽是与CPU直连?总结不得不说PCIE知识
- Kernelized Correlation Filters (KCF) Tracking算法
- ~~单调栈(数据结构)
- 如何避免腾讯云彻底搞丢“天价数据”事件再次发生?
- 主流JS框架中DOMReady事件的实现
- Silverlight 项目结构解析
- matlab中phi什么意思,球面座標matlab中Theta和Phi角的範圍?
- 《摩尔神话》:硅基经济的扫地僧戈登·摩尔
- C# 格式化json移除空值,参数按照第一个字符的键值 ASCII 码递增排序(SM2签名)
- C/C++ _beginthreadex 多线程操作 - 线程同步
- 服务器装系统鼠标键盘用不了怎么办,教你重装系统鼠标键盘不能用怎么解决?...
- 夜神模拟器 Fiddler Tunnel to......443
- 基于深度学习机器学习的中文期刊分类
- 全国大学生数学建模竞赛(赛题选择)
- 匈牙利命名法、驼峰式命名法、帕斯卡命名法
- oracle minus 条件,Oracle minus用法详解及应用实例