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替换。)

解决不能正确解析__interfacekeyword问题: 在project选择添加宏定义,该__interface它被定义为struct。

阅读代码分析工具Understand 2.0试用的更多相关文章

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

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

  2. Android代码分析工具lint学习

    1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...

  3. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

  4. C++静态代码分析工具推荐——PVS-Studio

    长假归来,最近一直没更新,节前本来就想写这篇了,一直到今天才有时间. 关于静态代码分析在维基百科上可以查到很详细的介绍:https://en.wikipedia.org/wiki/List_of_to ...

  5. Cppcheck 1.54 C/C++静态代码分析工具

    Cppcheck是一个C/C++代码分析工具,只检测那些编译器通常无法检测到的bug类型.   官方上建议让编译器提供尽量多的警告提示:1.使用Visual C++的话,应使用警告等级4 2.使用GC ...

  6. [转载] 常用 Java 静态代码分析工具的分析与比较

    转载自http://www.oschina.net/question/129540_23043 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代 ...

  7. 【转载】常用 Java 静态代码分析工具的分析与比较

    摘自:http://www.oschina.net/question/129540_23043常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后 ...

  8. java静态代码分析工具infer

    infer是一个静态代码分析工具,探测bugs. 主要支持Java.C/C++ 安装:brew install infer 在线展示:https://codeboard.io/projects/115 ...

  9. Https与Http,SSL,DevOps, 静态代码分析工具,RFID, SSH, 非对称加密算法(使用最广泛的一种是RSA), 数字签名, 数字证书

    在URL前加https://前缀表明是用SSL加密的. 你的电脑与服务器之间收发的信息传输将更加安全. Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定. http和h ...

随机推荐

  1. ultraedit比较两个文件差异经验

    链接地址:http://jingyan.baidu.com/article/fcb5aff7876551edab4a714b.html 程序开发人员经常要使用到两个文件的对比,有很多工具可以实现该功能 ...

  2. TCP三四次握手

    通俗点说: 三次握手: A:发送连接请求 B:收到请求后,B知道自己的接收端是好的,返回给A请求的应答,并询问A是否收到自己的本次应答. A:收到B的应答.A知道自己的发送端和接收端都是好的.然后发送 ...

  3. EF的两种延迟加载

    EF的两种延迟加载 EF的延迟加载一: 在一次查询以后得到temp,然后在temp上直接进行查询得到temp2,我们调用temp2的时候,是直接为temp生成sql脚本的,没有生成temp的脚本,也就 ...

  4. OC中多线程的一些概念

    1.进程1.1>进程是指在系统中正在运行的一个应用程序(同时打开QQ和Xcode,系统会分别启动2个进程)1.2>每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内 2.线 ...

  5. 基于visual Studio2013解决面试题之1109全排列

     题目

  6. 【学习opencv第六篇】图像的反转操作

    考试终于完了,现在终于有时间可以继续学习这个了.写这篇博客主要是因为以前一直搞不清楚图像数据到底是怎么存储的,以及这个step到底是什么,后来查了一下才知道原来step就是数据行的长度.. #incl ...

  7. JAVA学习笔记 -- 数据结构

    一.数据结构的接口 在Java中全部类的鼻祖是Object类,可是全部有关数据结构处理的鼻祖就是Collection和Iterator接口,也就是集合与遍历. 1.Collection接口 Colle ...

  8. IOS UItableView得到group如何摆脱的剪裁线条样式问题

    在他们的定义UItableView什么时候,选择当style至Group时间,后常透明切割线依然,去除.只有再次刷新了BackgroundView它可以覆盖原来的 //取消切割线 UIView *vi ...

  9. Swift - 邮件发送功能的实现

    使用MessageUI.framework框架除了可以发送短信,还能发送Email,步骤如下: (1)首先判断设备是否有发送邮件功能 (2)如果设备允许发送邮件,创建一个MFMailComposeVi ...

  10. Python脚本:获取股票信息

    在水木上看到有人在问到想用python去获取股票的信息,sina finance上面的那些数据的是通过js控制的,会根据股票代码去获取实时信息然后根据用户友好的方式展示出来.首先,新浪的一个url让我 ...