understand - 笔记

2023-11-05

术语 Terminology

Architecture 层级

An architecture is a hierarchical aggregation of source code units (entities). An architecture can be user created or automatically generated. Architectures need not be complete (that is, an architecture’s flattened expansion need not reference every source entity in the database), nor unique (that is, an architecture’s flattened expansion need not maintain the set property).

层级表示代码单元(或者实体)组成的层次结构,可以由用户手动创建,也可由本
软件自动生成。一个层级可以不完整(例如一个层级的扁平化扩展有可能不会关联数据库中的所
有代码实体),也可能不唯一(扁平化扩展的层级可能不会处理其预设属性)。

Database 数据库

The database is where the results of the source code analysis, as well as project settings, are stored. By default, this is a project’s “.udb” file.

代码经分析后产生的中间结果,以及工程设置保存在数据库,其缺省扩展名为“.udb”。

Entity 实体

An Understand “entity” is anything it has information about. In practice this means anything declared or used in your source code and the files that contain the project. Subroutines, variables, and source files are all examples of entities.

Understand 描述的“实体”表示任何包含信息的事物,具体来说,代码中声明或
者使用的标识、包含工程的文件、子程序、变量、源文件都可以被称为实体。

Project 工程

The set of source code you have analyzed and the settings and parameters chosen. A “project file” contains the list of source files and the project settings.

表示源代码的集合以及相关的配置和参数,工程文件包含源文件清单和工程设置。

Relationship 关联

A particular way that entities relate to one another. The names of relationships come from the syntax and semantics of a programming language. For instance, subroutine entities can have “Call” relationships and “CalledBy” relationships.

互作用的实体之间的关系,关联的名称来源于编程语言的语法和语义,例如过程式实体具有“调用”和“被调用”的关联对象。

Script 脚本

Generally a Perl script. These can be run from within Understand’s GUI, or externally via the “uperl” command. The Understand Perl API provides easy and direct access to all information stored in an Understand database.

通常指perl脚本,脚本可以通过Understand 2.5的图形用户界面或者外部的脚本命令执行。Understand Perl API提供了快捷的访问Understand数据库所有信息的接口。

parts 部件

下面的图形展示了一些Understand 图形用户界面(GUI) 中常用的部件:

常用词汇

单词 释义
Macros
Variables 变量
Constants 常量
Functions 函数
Reference 引用
Metrics 参数
Architectures 架构
parameters 参数
Call 调用
Compiler 编译器
component 组件、部件、元件
portability 可移植性
Cluster 集群
Function Static Variables 静态函数变量
case sensitive 区分大小写
Whole Words Only 整词匹配
layout 布局
summary 综述、总论
features 特征
control-flow graphs 控制流程图

右键菜单

代码编辑窗口的右键菜单提供了很多浏览编辑操作的快捷方式,也提供了相关实体的特定信息。

以下介绍了右键菜单包含的典型的浏览操作(与点击对象有关):

  • View Information 信息查看(参见信息浏览器)
  • Graphic Views 图形视图
  • Edit Source/Definition 代码编辑
  • User Tools 用户工具
  • Explore 浏览(参见层级查看)
  • Find In… 查找(参见多文件查找)
  • Add Favorite 添加到收藏夹(参见收藏夹)
  • Metrics Chart 度量图表

以下介绍了右键菜单包含的典型的编辑操作(与点击对象有关):

  • Undo/Redo 撤销/重做
  • Cut/Copy/Past 剪切/复制/粘贴(参见文本选择和拷贝)
  • Select All 全选(参见文本选择和拷贝)
  • Jump to Marching Brace 跳到块末
  • Select Block 块选择
  • Hide/Show Inactive Lines 行显示/隐藏
  • Fold All 折叠所有分支
  • Soft Wrap 软包装
  • Comment Selection/Uncomment Selection 注释选择/代码选择
  • Change Case 大小写切换
  • Revert 反转
  • Add Bookmark 添加书签活动

Project Configuration

使用菜单栏ProjectConfigure Project,选择C++可以打开如下窗口。
在这里插入图片描述

C++Option配置页面包括如下区域:

  • Compiler
    选择当前工程使用的编译器或者平台,编译器相关的宏定义根据选择自动设置。需要注意的是,编译器的某些特性有可能没有得到很好的支持。
  • Compiler Include Paths
    输入编译器使用的头文件的所在路径,如%include%。
  • Allow nested comments:默认情况下,该选项禁止。打开的状态下,Understand允许C语言的注释符(/**/)可以嵌套使用(这种风格被ANSI禁止,但是有一些编译器支持)。
  • Prepend the names of externally linkable entities with
    使用一个随意的字符串作为工程中其他语言编写的代码中定义的实体的前缀。
  • Append the names of externally linkable entities with
    使用一个随意的字符串作为工程中其他语言编写的代码中定义的实体的后缀。
  • Create implicit special member functions
    源代码没有类和结构实体的相关语句时,Understand数据库自动创建默认构造函数,析构函数和隐式声明引用,从而为分析时提供相关的引用实体。该选项默认禁止。
  • Create references in inactive code
    如果希望将条件编译控制的非激活代码排除在外,需要取消该选项,默认选中。
  • Create references to local objects
    默认情况下,Understand数据库包含所有局部对象,如果希望不包含函数中声明的变量需要取消该选项。Understand 2.5的主窗口可以选择是否需要在HTML报告中包含局部对象。
  • Create references to macros during macro expansion
    选中情况下,数据库保存宏解析时的引用关系。有时候,该选择有用。注意,该选项选中导致数据库增加很多引用关系,会变得很慢。默认关闭。
  • Create references to parameters
    关闭该选项取消参数的引用关系,默认开启。
  • Save comments associated with entities
    此选项控制代码实体前后注释与实体的关联。
  • Save duplicate references
    默认情况下,引用关系只在数据库保存一份,选中该选项,会记录重复的引用关系。
  • Save macro expansion text
    选中该选项的情况下,可以在选中宏的右键菜单下选择Expanded Macro Text来查看宏定义值。
  • Use Include cache
    由于头文件通常被多个源文件使用,默认情况下,分析阶段头文件都采用高速缓存,这样能够加速分析过程,但是需要更多的内存,如果分析过程碰到内存问题,可以将此选项关闭。同时需要注意的是,高速缓存的使用会影响到分析结果。

Entity Filter窗口

在这里插入图片描述

根过滤器

  • Root Calls
    仅显示调用而不被调用的实体,如上层代码(mains),硬件调用的代码(中断处理函数)以及哑(不被使用)代码。

  • Root CallBys
    仅显示只被调用而不调用其他实体的实体,即最底层的函数。

  • Root IncludeBys
    仅显示被其他文件包含的文件,即基础头文件。

  • Root Classes
    仅显示不依赖于其他类的类,包括底层类和库类。

  • Root Decls
    仅显示最高层的声明过程(Ada)。

  • Root Withs
    仅显示被其他单元使用,而不使用其他单元的程序单元(包括包,任务,子程序等)(Ada)。

信息浏览器

在这里插入图片描述

信息浏览器同步

取消Sync 勾选可以打开多个信息浏览器窗口,Sync 勾选的情况下,选中一个实体或者选择View Information 则会更新当前信息浏览器。

选中File Sync 可以保证信息浏览器内容始终与激活的代码编辑器保持同步。
在这里插入图片描述

引用查看

信息浏览器的“References”区域显示了所有引用选中实体的相关信息:
在这里插入图片描述

工程浏览器

在这里插入图片描述

上下文信息边栏
在这里插入图片描述

显示当前激活的编辑窗口的结构和信息,标签页包含了以下信息:

  • Structure Browser
    提供当前文件的扩展范围列表,列出了文件中函数,头文件包含,宏定义,类及其他各种结构的名称。名称旁边的图标指示了实体类型。将鼠标移动到一个条目,弹出显示实体类型和名称的活动文本框。使用Ctrl+F 可以在标签页范围内进行查找。

  • File Information
    提供当前文件的信息浏览器。

  • Scope Information
    显示Structure Browser 中选中实体的相关信息。

  • Context Browser
    在左侧显示当前实体在层级结构中的位置,右侧显示当前实体包含的其他实体。文件信息标签页右上角的图标(或者使用Ctrl+,)可以将编辑窗口和CIS 中的文件替换为同目录下同名但不同扩展名的文件。例如,使用这种方法可以在.p/.cpp 和.h 文件之间快速切换。

右键菜单也提供了多种快捷的操作选择。

大小写修改

Understand 2.5代码编辑器支持选中文本进行快速的大小写修改,方法如下:

  1. 选中代码中的一个或者多个单词。
  2. 通过菜单栏EditChange Case,或者右键菜单中选择Change Case
  3. 选择需要使用的大小写修改方式,选项包括:
    在这里插入图片描述

层级结构浏览器

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fnEcY1no-1635951941543)(pic/NBItUr4.png)]

层级结构节点(如文件系统目录节点和本季度修改节点)的右键菜单包含了以下一些其他对象的右键菜单没有提供的额外选项:

  • Graphical ViewsDependency Graphs: 显示层级结构各节点的依赖关系。

  • Metrics Summary:提供选中节点各实体的度量数据,这些度量数据基于当前节点下的实体,不包括子节点中的实体。

  • Metrics Export:将度量总结导出到一个CSV 文件。

  • XML Export:将层级结构中选中节点及子节点包含的实体以XML 格式导出。

  • Edit Architecutre:为用户自己创建的层级结构打开一个层级结构构建器,Understand
    自动构建的层级结构不能被修改。

  • Rename Architecture:为用户自己创建的层级结构或者节点打开一个层级结构重命名窗口供用户对其中名称进行修改,Understand 2.5 自动构建的层级结构不能被重命名。

  • Duplicate Architecture:打开层级结构复制窗口对选中层级结构的副本进行命名。

  • Manage Architecture:打开层级结构管理窗口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

understand - 笔记 的相关文章

  • Docker+xrdp+understand

    创建容器 我使用的是Ubuntu18 04的镜像 xff0c 注意把3389端口映射出来 docker run it name understand p 3399 3389 ubuntu 18 04 安装xrdp协议 span class
  • 几款ZooKeeper可视化工具,最后一个美炸了~

    本文首发于公众号 BiggerBoy 欢迎关注 ZooKeeper是我们工作中常用一个开源的分布式协调服务 提供分布式数据一致性解决方案 分布式应用程序可以实现数据发布订阅 负载均衡 命名服务 集群管理分布式锁 分布式队列等功能 当我们想通
  • 如何优雅的将Mybatis日志中的Preparing与Parameters转换为可执行SQL

    原文链接 疫情期间大家宅在家里是不是已经快憋出 病 了 公司给开了VPN 手机电脑都能连 手机装上APP测试包 就能干活了 所以walking从2020 02 01入京以来 已经窝在家里11天了 这两天在家远程办公 预测下周也要在家办公 最
  • 杂项系列:代码分析工具Understand中文乱码

    参考 https blog csdn net ll480 article details 89575357 总结 project gt configure project gt file options gt File encode gt
  • idea快速上手指南

    安装 双击打开安装包 选择一个目录 最好不要中文和空格 然后选择桌面快捷方式 请选择64位 然后选择安装 开始安装 然后勾选安装后运行 Finish 首次配置 然后是UI界面选择 有白色和黑色两款 总有一款适合你 把不需要的组件禁用 插件暂
  • gdb 安装编译

    arm linux gdb gdbserver的编译安装 下载gdb 7 5 tar gz http www gnu org software gdb download ftp sourceware org pub gdb releases
  • Windows安装使用Nacos并进行服务治理

    Nacos简介 Nacos 致力于帮助您发现 配置和管理微服务 Nacos 提供了一组简单易用的特性集 帮助您快速实现动态服务发现 服务配置 服务元数据及流量管理 Nacos其实就是一个注册中心 用来管理和注册微服务 搭建Nacos环境 安
  • maven仓库地址https://mvnrepository.com/

    之前百度搜maven 前几个就能找到这个网址 现在不容易搜到了 记录一下 maven公共仓库地址 https mvnrepository com
  • understand - 笔记

    术语 Terminology Architecture 层级 An architecture is a hierarchical aggregation of source code units entities An architectu
  • 数据库基础命令

    SELECT 从数据库中提取数据 SELECT column name column name FROM table name SELECT DISTINCT column name column name FROM table name
  • SaaSBase:最受欢迎的协同办公软件有哪些(上篇)

    在海量的协同办公软件中 企业该如何选择呢 不用担心 SaaSBase saasbase cn 来帮您 根据 SaaSBase saasbase cn 的数据统计 有较多的协同办公软件受到企业的欢迎 故小编将它们拆分为两篇为您揭晓 先看今天第
  • ST-Llink与STM32最小系统开发板的线路连接

    ST Llink与STM32最小系统开发板的线路连接 1 ST Llink与STM32最小系统开发板的线路连接 ST Llink SWO STM32 SWDIO ST Llink SWCLK STM32 SWCLK ST Llink GND
  • JetBrains插件推荐

    JetBrains软件本身就是效率神器 配合上一些好用的插件 效率就更是飞升了 本文就简单记录一些好用的插件和简介 持续更新 安装方法都很简单 这里就不过多叙述了 实在不会就百度一下 Chinese Simplified Language
  • nacos源码启动找不到istio包

    现象 源码版本2 1 0 启动时 编译不通过 报错 找不到 istio mcp v1alpha1 MetadataOuterClass Metadata istio networking v1alpha3 ServiceEntryOuter
  • 相见恨晚的办公插件合集(二)

    之前有分享过一些办公的插件 如不坑盒子 打工人插件 易用宝等 下面就简单的介绍一下上面的几个神器后再补充一些其它办公神器吧 不坑盒子 word wps 这是一个非常好用的插件工具 专门应用在Word文档和wps 支持Office 2010以
  • VScode解压版升级

    按照提示 下载最新的解压版 下载后解压文件夹 然后将旧的的解压版删除 不要替换 是删除之前的解压版 然后将新的解压后的文件粘贴到原来的位置 当然 如果你要换位置也是可以的 解压版很随意 很绿色的 之前的插件也是会完全保留的 包括登录信息
  • 简单有效,如何彻底卸载删除AlibabaProtect.exe

    简单有效 如何彻底卸载删除AlibabaProtect exe Process Hacker https www isharepc com 33781 html
  • 最全Mac&Win软件分享

    由于诸多因素影响 无法再分享相关的资料 如果无法访问GitHub的话大家可以去搜一下 GitHub加速 直接搜索找到相关的解决方案即可 包含常用的所有软件以及在线工具等等 GitHub地址 other doc Tools at main c
  • 解决BookxNotePro在linux下无法启动或GLIBC_2.29‘ not found的问题

    问题描述如题 命令行启动出现如下报错 usr local BookxNotePro BookxNotePro usr local BookxNotePro BookxNotePro lib x86 64 linux gnu libm so
  • Downie 4 4.6.12 MAC上最好的一款视频下载工具

    Downie for Mac 简介 Downie是Mac下一个简单的下载管理器 可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们 Downie 4 Downie 4 for Mac Downie

随机推荐

  • pip使用总结(持续更新)

    持续总结python pip遇到过的坑 1 pip镜像源 阿里镜像 临时 pip install xxx i http mirrors aliyun com pypi simple trusted host mirrors aliyun c
  • ms-repeat 循环

    ms repeat 可以写成 ms repeat el 后面的el 相当于给每个节点定义的变量名 还可以定义成ms repeat m避免与上级循环的变量重名 ul class times li a href el year a li ul
  • perp系列之七:perp手册

    perp系列之七 perp手册 版本说明 版本 作者 日期 备注 0 1 ZY 2019 5 29 初稿 目录 文章目录 perp系列之七 perp手册 版本说明 目录 1 该发行版包括以下手册页 perp intro 8 perp set
  • 服务器端安装jupyter notebook并在本地使用与环境配置一条龙服务【服务器上跑ipynb】

    linux服务器端安装jupyter notebook并在本地使用 1 生成配置文件 2 配置Jupyter notebook密码 3 修改配置文件 jupyter jupyter notebook config py 4 本地访问远端的服
  • 微调Hugging Face中图像分类模型

    前言 本文主要针对Hugging Face平台中的图像分类模型 在自己数据集上进行微调 预训练模型为Google的vit base patch16 224模型 模型简介页面 代码运行于kaggle平台上 使用平台免费GPU 型号P100 笔
  • About the Storage allocation

    It doesn t matter what programming language u use it s all about the usage of variable storage management 1 Static Dynam
  • 刷爆力扣!反超对象第五天之最长公共前缀

    目录 1 题目解析 2 代码提交 3 知识点学习 1 题目解析 题目 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 1 输入 strs flower flow flight 输出 fl 此题其实也很简
  • ant design pro中umi-request拦截请求统一处理报错提示

    ant design pro项目请求用的是umi request 对于请求不成功的情况需要给用户错误提示 但是每个请求都对错误情况做处理 冗余代码太多 所以在src utils request页面拦截请求统一处理 umi request 访
  • 数字电子技术基础大作业---电子表、流水灯

    数字电子技术基础大作业 电子表 流水灯 一 电子表 1 1应用的元件 555 六片74LS160N 三片74LS26D 两片74LS04D 六个个D HEX 十六进制输入的显示数码管 电阻 电容若干 1 2简单原理 用555定时器产生频率为
  • NLP中的余弦相似度 Cosine similarity 是什么,如何计算(学习心得)

    余弦相似度 Cosine similarity To measure how similar two words are we need a way to measure the degree of similarity between t
  • mysql支持copymanage方式么_PostgreSQL:Java使用CopyManager实现客户端文件COPY导入

    在MySQL中 可以使用LOAD DATA INFILE和LOAD DATA LOCAL INFILE两种方式导入文本文件中的数据到数据库表中 速度非常快 其中LOAD DATA INFILE使用的文件要位于MySQL所在服务器上 LOAD
  • python安装sklearn_如何使用VScode引入python第三方模块

    pip 是 Python 包管理工具 该工具提供了对Python 包的查找 下载 安装 卸载的功能 通过pip引入第三方模块 如果已经安装了pip 直接进入第五步 比如我要引入cv2 1 打开vscode 2 打开终端 3 输入pip in
  • ROS GDB 使用和core dump分析

    参考 http wiki ros org roslaunch Tutorials Roslaunch 20Nodes 20in 20Valgrind 20or 20GDB https blog csdn net sunxiaoju arti
  • 实现领域驱动设计----第六章

    当你决定以恶搞领域概念是否是一个值对象时 你需要考虑他是否拥有以下特征 它度量或者描述了领域中的一件东西 它可以作为不变量 它将不同的相关的属性组合成一个概念整体 当度量和描述改变时 可以用另一个值对象予以替换 它可以和其他值对象进行相等性
  • 【SpringBoot】还不会SpringBoot项目模块分层?来这手把手教你

    文章目录 前言 缘由 本文阅读时长 主要目标 试用人群 快速链接 水图 正文 1 IDEA新建项目 2 创建子模块 dependencies 依赖层 重点 3 创建子模块 main 主启动层 重点 4 创建子模块 module 模块层 5
  • Eclipse关于搭建JSP运行环境(超级详细过程附带网页地址)

    1 下载jdk 2 配置环境变量 3 下载安装Tomcat 4 下载安装Eclipse 5 配置Eclipse运行第一个JSP程序 一 下载jdk 百度地址栏搜索https www oracle com java technologies
  • js替换字符串中的空格,换行符\r\n或\n替换成

    为了让回车换行符正确显示 需要将 n 或 r n 替换成 br 同样地 将空格替换存 nbsp 这里我们通过正则表达式来替换 一 替换所有的空格 回车换行符 原始字符串 var string 欢迎访问 r nhangge com 做最好的开
  • Linux_8_磁盘存储和文件系统

    1 磁盘结构 1 1 设备文件 一切皆文件 open read write close 设备文件 关联至一个设备驱动程序 进而能够跟与之对应硬件设备进行通信 设备号码 主设备号 major number 标识设备类型 次设备号 minor
  • A*寻路算法浅析

    最近刚接触A 寻路算法 听说是一种比较高效的自动寻路的算法 当然 事实也正是如此 这么好的东西 自然是要收入囊中的 说不定什么时候也能派上用场呢 为了学习这个 也是上网找了好多资料 看了好多博客 但是貌似有些关键点没有具体说明 所以自己也是
  • understand - 笔记

    术语 Terminology Architecture 层级 An architecture is a hierarchical aggregation of source code units entities An architectu