Understand 2.0是一款源代码阅读分析软件,功能强大。试用过一段时间后,感受至关不错,确实能够大大提升代码阅读效率。因为Understand功能十分强大,本文不可能详尽地介绍它的全部功能,因此只列举本人认为比较重要或有特点的功能,以作抛砖引玉之举。正则表达式
Understand 2.0能够从http://www.scitools.com/下载到,安装后能够试用15天。数据库
使用Understand阅读代码前,要先建立一个Project,而后把全部的源代码文件加入到这个Project里。这里我建立了一个ATLSTL的Project,而后把Microsoft Visual Studio 2008带的ATL、STL、MFC的源代码加入其中。须要说明的是,Understand支持不少种源代码,包括C#,而不光是C++代码。浏览器
这是整个用户界面的概览,能够看到和Visual Studio的风格很类似。全部了子窗口均可以任意停靠或折迭。函数
下面逐个介绍Understand的特性。工具
一,强大的自动绘图能力。.net
Understand能够生成许多种有用的图形,如类关系图、函数调用关系图、头文件包括关系等。下面是CFile的类图。blog
固然,若是愿意,你能够生成CObject派生的整个MFC的类图(http://p.blog.csdn.net/images/p_blog_csdn_net/qwang24/EntryImages/20090411/ButterflyGraph-CObject.png)。这种图之前只能在MSDN里能够见到,如今能够在瞬间自动生成,很酷!ci
还能够显示函数的调用关系:get
以及头文件的包括关系:it
二,出色的增量搜索功能
增量搜索也许不是新概念,在Visual Studio里早就有。可是Understand里的增量搜索具备动态代码加亮的功能。也就是说,能够把选中的标识符的全部实例,都以醒目的颜色显示出来,对于阅读代码时,很是有帮助。以下图,对函数参数pFileTime执行增量搜索,则它出现的过地方都会被标示出来。这样,这个参数是如何被使用的,一目了然。
三,丰富的标识符信息
Understand的代码信息数据库十分完善,全部的标识符能够分类显示。每一类标识符又具备不一样的信息。如关于函数的信息,能够显示定义它的文件名,返回值类型,参数信息,调用函数,被调用函数,引用这个函数的信息,代码量等。其中,引用信息里会有引用类型,如申明、调用、定义等,很是实用。
而对于变量信息,而以显示变量在哪里定义的,是设置变量的值仍是使用变量的值等。
四,方便的搜索功能
不少窗口都有方便的搜索功能,便于快速定位须要的信息。如项目浏览器里,能够输入文件名,快速找到相关的文件。
Understand还有不少其余强大的功能,如报表功能,代码编辑,代码变化跟踪等。
固然,和其余全部的代码分析工具软件同样,Understand也有一些不足之处,若有时候会解析错误,不支持COM代码的Attribute扩展,对机器配置要求较高,对正则表达式的支持不完善等。
备注:
解决不能正确解析COM的Attribute扩展问题: 搜索正则表达式: /]/s*$ , 替换为 /]; (使用Visual Studio的在多个文件中替换功能,不能直接使用Unserstand替换。)
解决不能正确解析__interface关键字问题: 在project选项里增长宏定义,把__interface定义为struct。