代码阅读分析工具Understand 2.0试用
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的特性。
一,强大的自动绘图能力。
Understand可以生成许多种有用的图形,如类关系图、函数调用关系图、头文件包括关系等。下面是CFile的类图。

当然,如果愿意,你可以生成CObject派生的整个MFC的类图(http://p.blog.csdn.net/images/p_blog_csdn_net/qwang24/EntryImages/20090411/ButterflyGraph-CObject.png)。这种图以前只能在MSDN里可以见到,现在可以在瞬间自动生成,很酷!
还可以显示函数的调用关系:

以及头文件的包括关系:

二,出色的增量搜索功能
增量搜索也许不是新概念,在Visual Studio里早就有。但是Understand里的增量搜索具有动态代码加亮的功能。也就是说,可以把选中的标识符的所有实例,都以醒目的颜色显示出来,对于阅读代码时,非常有帮助。如下图,对函数参数pFileTime执行增量搜索,则它出现的过地方都会被标示出来。这样,这个参数是如何被使用的,一目了然。

三,丰富的标识符信息
Understand的代码信息数据库十分完善,所有的标识符可以分类显示。每一类标识符又具有不同的信息。如关于函数的信息,可以显示定义它的文件名,返回值类型,参数信息,调用函数,被调用函数,引用这个函数的信息,代码量等。其中,引用信息里会有引用类型,如申明、调用、定义等,非常实用。

而对于变量信息,而以显示变量在哪里定义的,是设置变量的值还是使用变量的值等。

四,方便的搜索功能
很多窗口都有方便的搜索功能,便于快速定位需要的信息。如项目浏览器里,可以输入文件名,快速找到相关的文件。

Understand还有很多其他强大的功能,如报表功能,代码编辑,代码变化跟踪等。
当然,和其他所有的代码分析工具软件一样,Understand也有一些不足之处,如有时候会解析错误,不支持COM代码的Attribute扩展,对机器配置要求较高,对正则表达式的支持不完善等。
备注:
解决不能正确解析COM的Attribute扩展问题: 搜索正则表达式: /]/s*$ , 替换为 /]; (使用Visual Studio的在多个文件中替换功能,不能直接使用Unserstand替换。)
解决不能正确解析__interface关键字问题: 在project选项里增加宏定义,把__interface定义为struct。
代码阅读分析工具Understand 2.0试用的更多相关文章
- 阅读代码分析工具Understand 2.0试用
Understand 2.0是一款源码阅读分析软件,功能强大.试用过一段时间后,感觉相当不错,确实能够大大提高代码阅读效率. 因为Understand功能十分强大,本文不可能详尽地介绍它的全部功能,所 ...
- 11个Visual Studio代码性能分析工具
软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...
- 一个适合.NET Core的代码安全分析工具 - Security Code Scan
本文主要翻译自Security Code Scan的官方Github文档,结合自己的初步使用简单介绍一下这款工具,大家可以结合自己团队的情况参考使用.此外,对.NET Core开发团队来说,可以参考张 ...
- .NET 11 个 Visual Studio 代码性能分析工具
原文地址 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行 ...
- NET Core的代码安全分析工具 - Security Code Scan
NET Core的代码安全分析工具 - Security Code Scan https://www.cnblogs.com/edisonchou/p/edc_security_code_scan_s ...
- 11 个 Visual Studio 代码性能分析工具
软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...
- .NET : 使用代码性能分析工具
NET : CLR Profiler的使用 经常讲课的时候会提到值类型和引用类型,也会提到如何查看它们的大小.多次被朋友问到,如何真的想要知道到底每个方法分配了多少内存之类的问题,其实这可以通过CLR ...
- [python]Python代码安全分析工具(Bandit)
简介: Bandit是一款Python源码分析框架,可用于Python代码的安全性分析.Bandit使用标准库中的ast模块,将Python源码解析成Python语法节点构成的树.Bandit允许用户 ...
- Tools - 源代码阅读分析工具Source Insight
简介 https://www.sourceinsight.com/ Source Insight是一个面向项目开发的程序编辑器和代码浏览器,可以分析C/C++.C#.Java.Python等语言源代码 ...
随机推荐
- yii2.0的分页和排序
//排序 $sort = new Sort([ 'attributes' => [ 'age' => [ 'asc' => ['age' => SORT_ASC], 'desc ...
- 使用jquery实现单选框、多选框取消选中状态
function radioReset(){ /*方式一*/ /* var radios = $("input[type='radio']"); for (i=0; i<ra ...
- java学习第二天 回顾运算符
一.回顾运算符: 补充: 三元运算符. 代码: /* 三目运算符: 三元运算符: 结构: 条件?条件成立的结果 :条件不成立的结果 ; */ class Demo1 { public static v ...
- oracle11g RAC1执行脚本结果
[root@testdb11a ~]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInvento ...
- HTTP错误500.19-定义了重复的节点
打开服务器的asp.net页面时出现这个错误: HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 解决办法: 打开II ...
- HDU 1907 John nim博弈变形
John Problem Description Little John is playing very funny game with his younger brother. There is ...
- 11 JSP/EL表达式/EL函数
JSP * 概述: JSP(Java Server Pages)与Java Servlet一样,是在服务器端执行的不同的是先由服务器编译部署成Servlet执行 * JSP的运行原 ...
- iOS 多快好省的宏定义
http://my.oschina.net/yongbin45/blog/150149 // 字符串:#ifndef nilToEmpty#define nilToEmpty(object) (obj ...
- 简单的SQL联表更新
UPDATE dbo.bankinfo1 SET bankinfo1.BankName=BankInfo.BankName FROM BankInfo where bankinfo1.banknumb ...
- table sorting–angularjs
1: <script type="text/javascript" ng:autobind 2: src="http://code.angularjs.org/0. ...