静态代码分析工具(一)—Scitools Understand

本文详细介绍了一个用于静态软件分析、度量和可视化的工具——Understand。涵盖了安装过程、工程创建步骤、查询功能以及项目视图的多种图形展示方式。此外还提到了其静态代码检测能力,可以帮助开发者发现代码中潜在的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

  • Understand是一个用来进行静态的软件分析、软件度量、软件可视化的工具。

二、软件使用

1、安装

安装的是Understand 5.1,安装及另起可用网上很多资源。

2、新建工程

在这里插入图片描述

  • 创建工程名称、路径
    在这里插入图片描述
  • 选择语言,注意,在C/C++后面有两种模式,下面有注释,其中Strict模式包含Object-C和Object—C++
    在这里插入图片描述
    在这里插入图片描述
  • 添加代码文件夹路径
    在这里插入图片描述
    在这里插入图片描述
    工程创建完毕
    在这里插入图片描述

3、查询功能

1、常规搜索Ctrl+F
在这里插入图片描述
2、全局搜索,快捷键F5或者去上面菜单栏中的search栏中查找
在这里插入图片描述

4、项目视图

  • 项目视图能够自动生成各种流程图结构图,帮助理清代码逻辑、结构等,以便快速理解项目流程,快速开发。鼠标右键Graphical Views。
    1、Butterfly:如果两个实体间存在关系,就显示这两个实体间的调用和被调用关系;
    在这里插入图片描述
    在这里插入图片描述
    2、Calls:展示从你选择的这个方法开始的整个调用链条
    在这里插入图片描述
    3、Called By:展示了这个实体被哪些代码调用,这个结构图是从底部向上看或者从右到左看;
    在这里插入图片描述
    4、Calls Relationship/Calledby Relationship:展示了两个实体之间的调用和被调用关系,操作方法:首先右键你要选择的第一个实体,然后点击另一个你要选择的实体,如果选择错误,可以再次点击其他正确即可,然后点击ok;
    在这里插入图片描述
    5、Control Flow:展示一个实体的控制流程图或者类似实体类型;
    在这里插入图片描述
    6、Cluster Control Flow:展示一个实体的流程图或者类似实体类型,这个比上一个更具有交互性;
    在这里插入图片描述

7、Declaration:展示一个实体的结构关系,例如:展示参数,则返回类型和被调用函数,对于类,则展示私有成员变量(谁继承这个类,谁基于这个类);
8、Declaration File:展示所选的文件中所有被定义的实体(例如函数,类型,变量,常量等);
9、UML Class Diagram:展示这个项目中或者一个文件中定义的类以及与这个类关联的类;
在这里插入图片描述

三、静态代码检测

  • 个人感觉能检查出来一部分不规则的代码,不能全相信检测结果。
    在这里插入图片描述
    在这里插入图片描述
    之后可以按照.c文件逐个警告查看,个人感觉并不是全部的规则都需要修改,能够检测出一些函数没有返回值、函数定义与声明不一致、缺少参数、参数未用等情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值