代码阅读分析工具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替换。)
解决不能正确解析__interfacekeyword问题: 在project选项里添加宏定义,把__interface定义为struct。
相关文章
- StringUtils 字符串工具类
- Linux 基于WEB开源的系统管理工具webmin
- Tools- 代码分析工具Doxygen
- Tools- 代码分析工具Doxygen
- ABAP代码静态分析工具SQF - Support Query Framework
- iOS(oc swift)蓝牙框架(工具类 demo)
- PyTorch:采用sklearn 工具生成这样的合成数据集+利用PyTorch实现简单合成数据集上的线性回归进行数据分析
- 滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)
- 效率倍增!5款超级好用的Python工具库!
- 【CSS】盒子模型内边距 ③ ( 盒子模型内边距案例 | 使用 Fireworks 分析网页 | 缩放图片 | 切片工具测量图片 | 吸管工具获取图片颜色 | 代码示例 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 linker 中的 dlopen 函数地址 并 通过 远程调用 执行该函数 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 二 | 准备参数 | 远程调用 mmap 函数 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 /system/lib/libc.so 动态库中的 mmap 函数地址 )
- 请善用工具审核您的内核代码:)
- 标注工具
- DT tableone各种花里胡哨的图 把dataframe导出成html 把矩阵变成html方便查看 类似于shinny功能 制作三线表等共功能 fextable 花里胡哨的工具 datatable
- 微软开源AI安全风险评估工具Counterfit——目前看比ART的攻击支持多一些
- 更严格的代码格式化工具 gofumpt
- 滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)
- python工具方法36 lableme标注转voc格式再转yolo格式(含voc数据集划分代码)
- JS工具方法 2 layui可编辑表格--代码复制后即可使用