vlambda博客
学习文章列表

源码分析神器 — Understand的使用教程

1. 介绍

Understand是一款强大的静态代码分析工具,支持多种编程语言,如Ada、C、 C++、 C#、Java、FORTRAN、Delphi等,同时也支持混合语言的项目。该工具可以对整个项目的额结构进行分析,生成多种图,如UML图、函数的调用关系图等,以帮助开发人员,能够更深刻的理解源码,极大地提升了开发效率。


2. 安装

傻瓜式安装。

官网:https://www.scitools.com/

Tip:官网提供最新版本的understand试用,但只有15天。涉及到版权问题,本教程不提供所使用版本的下载链接。想要更自由地使用understand,读者可以百度一下,你懂的!


3. 示例

本教程使用的版本是Understand 5.1,并使用sonic-quagga-debian-0.99.24.1来演示工具的使用。

3.1 导入项目文件

如图,File -> New -> Project

选择Add Directory,并选择项目的文件夹

源码分析神器 — Understand的使用教程

选择Continue

源码分析神器 — Understand的使用教程

你可以选择语法检查较为严格的模式,或者是不那么严格的模式,这里我们选择不那么严格的模式,并选择Continue

源码分析神器 — Understand的使用教程

创建项目

源码分析神器 — Understand的使用教程

左边即可看见文件夹的目录

源码分析神器 — Understand的使用教程

3.2 静态代码分析

这里我们用bgpd为例来演示如何用understand来分析源码

进入main.c文件,我们在中间下拉菜单可以看到,在该文件之下的所有函数

源码分析神器 — Understand的使用教程

我们选择并定位到main函数,在main处右键,选择Graphical Views

源码分析神器 — Understand的使用教程

选择Butterfly,我们可以看到从main函数开始的完整函数调用关系

源码分析神器 — Understand的使用教程

如果我们想看简洁的函数调用关系,我们可以选择Calls,如图小圆点处点击下可以展开

源码分析神器 — Understand的使用教程

源码分析神器 — Understand的使用教程

选择Control Flow,我们还能看到main函数调用的完整控制流图

源码分析神器 — Understand的使用教程

选择Cluster Call,我们还能看到头文件的包含情况,如图双击头文件可以展开查看

        

以上对Understand的介绍只是抛砖引玉,Understand还有许多功能,相信读者在实践中,会逐渐发现并熟练掌握其用法,以帮助团队更高效地开发。