代码阅读分析工具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等语言源代码 ...
随机推荐
- Entity framwork的数据库分页
网上查了很多,原以为多么复杂的事情,其实很简单: list = list.OrderBy(orderBy, ascending).Skip((pageIndex - 1) * pageSize).Ta ...
- 单位圆盘的全纯自同构群Aut B(0,1)
利用Schwarz引理可以求出单位圆盘$B(0,1)$的全纯自同构群${\rm Aut}B(0,1)$. 任取$a\in B(0,1)$,记$$\varphi_{a}(z)=\frac{a-z}{1- ...
- Android root + 修改host
1.使用KingRoot下载手机版,安装后进行Root处理. 2.下载 RE文件管理器,安装后,打开应用,进入etc,找到host, 勾选,菜单中选择 以文本方式编辑,修改好之后,按返回键 ,提示保存 ...
- NSURLConnection 异步加载网络数据
#import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...
- 转载--PayPal高级工程总监:读完这100篇论文 就能成大数据高手
http://www.csdn.net/article/2015-07-07/2825148
- react native TextInput
今天我想说一下react native中的一个控件,TextInput 翻译过来就是文本输入,对应着android中的EditText.我们先看一下官方是怎样描述的.TextInput是一个允许用户在 ...
- 注解@RequestMapping 的使用
1首先@RequestMapping 中的值,我们说请求方法l路径,请求url我们都知道怎么请求了,在第一节helloworld中, 我们先说我们先建一个类,RequestMappingTest 方法 ...
- 首师大附中互测题:50229234海岛帝国:独立之战【C002】
[C002]50229234海岛帝国:独立之战[难度C]———————————————————————————————————————————————————————————————————————— ...
- iOS学习23之事件处理
1. 事件的基本概念 1> 概述 事件是当用户手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象. 系统将事件按照特定的路径传递给可以对其进行处理的对象 在iOS中,一个UITouch对 ...
- 【转】HashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别
转自:http://blog.csdn.net/paincupid/article/details/47746341 一.HashMap和TreeMap区别 1.HashMap是基于散列表实现的,时间 ...