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试用的更多相关文章

  1. 阅读代码分析工具Understand 2.0试用

    Understand 2.0是一款源码阅读分析软件,功能强大.试用过一段时间后,感觉相当不错,确实能够大大提高代码阅读效率. 因为Understand功能十分强大,本文不可能详尽地介绍它的全部功能,所 ...

  2. 11个Visual Studio代码性能分析工具

    软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...

  3. 一个适合.NET Core的代码安全分析工具 - Security Code Scan

    本文主要翻译自Security Code Scan的官方Github文档,结合自己的初步使用简单介绍一下这款工具,大家可以结合自己团队的情况参考使用.此外,对.NET Core开发团队来说,可以参考张 ...

  4. .NET 11 个 Visual Studio 代码性能分析工具

    原文地址 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行 ...

  5. NET Core的代码安全分析工具 - Security Code Scan

    NET Core的代码安全分析工具 - Security Code Scan https://www.cnblogs.com/edisonchou/p/edc_security_code_scan_s ...

  6. 11 个 Visual Studio 代码性能分析工具

    软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...

  7. .NET : 使用代码性能分析工具

    NET : CLR Profiler的使用 经常讲课的时候会提到值类型和引用类型,也会提到如何查看它们的大小.多次被朋友问到,如何真的想要知道到底每个方法分配了多少内存之类的问题,其实这可以通过CLR ...

  8. [python]Python代码安全分析工具(Bandit)

    简介: Bandit是一款Python源码分析框架,可用于Python代码的安全性分析.Bandit使用标准库中的ast模块,将Python源码解析成Python语法节点构成的树.Bandit允许用户 ...

  9. Tools - 源代码阅读分析工具Source Insight

    简介 https://www.sourceinsight.com/ Source Insight是一个面向项目开发的程序编辑器和代码浏览器,可以分析C/C++.C#.Java.Python等语言源代码 ...

随机推荐

  1. linux 使用 nvidia 的 gpu

    第一种方法: [Wizard@Wizard ~]$ nvidia-detect kmod-nvidiaOptimus hardware detected: An Intel display contr ...

  2. 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis

    一个让我崩溃的问题 感谢:http://blog.csdn.net/itlionwoo/article/details/17523371

  3. 解决NSData转NSString返回nil的问题

    // 字符串转Data NSString *str =@"jesfds"; NSData *data =[str dataUsingEncoding:NSUTF8StringEnc ...

  4. Python学习笔记(二)——HelloWorld

    一.交互式化环境下书写代码 二.使用文本编辑器编辑.py文件 1.建议,使用Nodepad++,好看,免费,度娘直接搜素即可. 2.编写代码 3.保存为.py结尾的文件 4.使用cmd,打开到文件所在 ...

  5. Vitamio

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

  6. HDU 4858 分块

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 题意:中文题面 思路:来自此博客 对每个点定义两个值:val,sum,val记录自己的特征值,s ...

  7. 表单验证——jquery validate使用说明【另一个教程】

    [参考:http://www.tuicool.com/articles/y6fyme] jQuery Validate jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证 ...

  8. Working in Singapore

    这篇blog主要是想说说最近以及将来一年的时间需要在Singapore工作的感受.你可能以及猜到了,我现在写这篇blog是在Singapore的Office里面. 在一个月之前还在成都工作,每天9:0 ...

  9. pushState与ajax实现无刷新加载

    一.JS代码: $(document).ready(function() { getContent();//初始化页面 $("nav a").click(function() { ...

  10. CI框架入门2

    文件目录与布局 1.user_guide    用户手册,可删 2.readme.rst    说明,可删 3.license.txt     证书,可删 4..gitignore composer. ...