【背景】

之前就写过Source Insight相关的帖子:

但是都是解决问题的。没有去推荐。

现在好好推荐一下。

windows下查看代码的好软件:Source Insight

Source Insight简介

Source Insight,是个用于查看代码的软件。

其只能在Windows平台上运行的软件。

Source Insight是收费软件。

对于用Source Insight去查看代码:

有人会说,现在用于看代码的工具很多,比如我之前推荐的:

以及:

等等,还有其他很多的工具和IDE,比如Eclipse,用于看代码,也不差。

为何还要Source Insight呢。

简单回答就是:

Source Insight,有着其他工具不具有的一些特定,使得最佳适合看代码和写代码。

到底有哪些特点,详见下面解释:

Source Insight的特点

简单说:

就是用于看代码,很爽。很好用。

复杂的说:

Source Insight,在查看代码(和编辑代码)方面,有着其他工具不具有的优点:

Source Insight在函数,变量等方面的着色方面,更易于人类识别和查看

对于同一份代码,用其他普通的文本编辑器,以及其他开发工具,所查看到的效果,

和Source Insight中查看的效果,还是有很大差别的。

此处以uboot中arm/lib/board.c为例:

用各种工具查看此代码,看看不同的效果如何:

(1)文本编辑器Sublime:

内核使用SearchMemory 内核查看器_创建项目

(2)文本编辑器Notepad++:

内核使用SearchMemory 内核查看器_内核使用SearchMemory_02

(3)IDE:Eclipse的CDT:

内核使用SearchMemory 内核查看器_内核使用SearchMemory_03

(4)Source Insight:

内核使用SearchMemory 内核查看器_创建项目_04

从中,可以看出:

Source Insight,在代码着色,以及变量,函数等识别方面,还是很到位的。

即:

如果只是在查看代码,review 代码,方面,Source Insight,还是的确很好用的。

Source Insight在创建项目,建立索引等方面的速度快

指的是,建立大型项目,建立函数,变量等索引,速度相对很快。

最经典的就是:

Linux内核源码,现在(记不太清)大概有3万甚至更多个文件了。

用别的工具,比如Eclipse,去创建一个项目,然后用于查看Linux内核源码的话。

速度是极其的慢,估计要几十分钟,甚至1,2个小时,才能完全建立完毕索引。

而Source Insight的话,创建项目,建立索引,即使对于Linux内核源码,也只需几分钟。

而对于Uboot等相对较小的项目,文件数目只有几千个的,则只需要多少秒,即可完成。

与此相比,Eclipse对于创建Uboot项目,导入文件,建立索引,则需要相对长一些的时间:

内核使用SearchMemory 内核查看器_文本编辑器_05

Source Insight在查看函数原型等方面,支持的更到位

在查看代码的过程中,更多的时候是,查看变量的来源,函数的来源,

而在C语言的开发期间,比如我遇到的嵌入式开发,常常需要去查看Uboot,Linux内核等代码。

而在这些项目中,往往是同一个函数,对应着多个不同函数的实现。

所以,需要查看代码时,能够快速有效的找到对应的函数实现。

比如,就拿上面的uboot中arm/lib/board.c中的board_init_f函数为例,其中调用了debug函数。

在Source Insight中,用Ctrl+鼠标点击debu函数,则就可以跳出对话框,可以选择找到自己所要的函数到底是哪个:

内核使用SearchMemory 内核查看器_内核使用SearchMemory_06

Source Insight的基本用法

【多图详解】用Source Insight创建项目,建立索引,查找文件

此处,以之前下载的一个u-boot-2013.01的C项目为例,来说明,如何用Source Insight去创建一个新项目。

并建立索引,供后续查看代码所用。

内核使用SearchMemory 内核查看器_创建项目_07

输入项目名称:

内核使用SearchMemory 内核查看器_Source_08

内核使用SearchMemory 内核查看器_内核使用SearchMemory_09

点击OK和是后,再去点击Browse找到你的项目代码所在位置。

我此处是直接粘贴路径进去,然后再点击OK:

内核使用SearchMemory 内核查看器_文本编辑器_10

新建的项目:

默认是选上:

Show only known document types

即:

只显示已经类型的文件

内核使用SearchMemory 内核查看器_创建项目_11

而我们此处,由于uboot中还有其他很多文件,比如Makefile,xxx.cfg,Readme等等非*.h,*.c之外的文件

所以要去取消选择这个选项,使得可以全部文件都显示出来:

内核使用SearchMemory 内核查看器_创建项目_12

然后再点击Add Tree,并且选中:”Recursively add lower sub-directories”:

内核使用SearchMemory 内核查看器_文本编辑器_13

内核使用SearchMemory 内核查看器_创建项目_14

内核使用SearchMemory 内核查看器_Source_15

然后加完了代码,再去重建索引:

Project->Rebuild Project

内核使用SearchMemory 内核查看器_Source_16

内核使用SearchMemory 内核查看器_文本编辑器_17

内核使用SearchMemory 内核查看器_内核使用SearchMemory_18

然后就是去建立索引了:

内核使用SearchMemory 内核查看器_创建项目_19

在建立索引完毕后,在右边的输入框中,

输入文件名,可以找到对应的文件:

内核使用SearchMemory 内核查看器_Source_20

然后双击找到的某个文件,即可打开文件:

内核使用SearchMemory 内核查看器_内核使用SearchMemory_21

注意到,右上角,有窗口最小化,最大化的按钮:

内核使用SearchMemory 内核查看器_内核使用SearchMemory_22

接下来,就是你自己的,查看代码之旅了。

一点点看代码,函数,变量吧。

Source Insight的总结

Source Insight,尤其适合在C或C++等语言开发期间,

查看代码(变量,函数的定义,函数的调用关系等等)和写代码。

还是很好用的。