SourceInsight - Relation Windows

磨刀不误砍柴工,你使用的工具决定了你的下限。我平时使用较多的代码编辑工具就是SourceInsight,这个工具速度快,操作方便,但处理非常大的项目的性能不是很理想,比如你要是添加整个Linux Kernel的源代码的话。

在使用SI浏览C语言项目代码时,用的最多的就是查找这个变量或函数在那里调用,通过查找来理解这个变量或函数的意义或作用是什么,是怎么使用的,理解其涉及的操作的执行逻辑等等。如果是C++语言的项目代码,除了上面,还要查找类的继承关系和谁使用了这个类,一般我都是通过查找类名,然后通过在搜索结果里查找public字符串来寻找它的继承类,通过查找new字符串来寻找谁生成实例而使用了它。

之前还专门搜索过从C++代码来导出类的继承和调用关系的工具。市场上是有这类工具的。

日常使用都还OK,也就这么用下来,并没有花很多时间研究SI这个工具,用的多是普通功能。里面有个Relation功能,之前理解过,能通过图表形式,显示函数或类的关系。当时知道有这个功能,也就没在意。今天想起来,再要查找某个基类的派生类时,突然想到,用这个功能不是正好可以解决这个问题吗,于是设置并使用了一下,真香!

下面参考帮助文档,来理解学习一下吧。

========== 分割线 ========== 

关系窗口(Relation Window)是 Source Insight 的一项创新功能,可以显示当前选中的符号与其他事物之间的关系。关系窗口可以显示函数调用树、类层次结构、结构成员、引用树等。它可以停靠在源代码窗口旁边,并在后台工作,自动跟踪您正在选择的内容并显示关系信息。

The Relation Window is a Source Insight innovation that shows the relationship between the currently selected symbol and other things. The Relation Window can show function call trees, class hierarchies, struc­ture members, reference trees, and more. It can be docked along side your source windows, and it works in the background tracking what you are selecting and showing relationship information automatically.

要显示关系窗口,请选择视图 > 面板 > 关系窗口。

To show the Relation Window, select View > Panels > Relation Window.

您可以在关系窗口选项对话框中指定关系类型和许多其他选项。请参阅: 关系窗口选项。

You can specify the relationship types and many other options in the Relation Window Options dialog. See: Relation Window Options.

关系窗口在后台运行,并跟踪您所选择的符号。关系窗口的优点在于您无需做任何特殊操作。在您工作时,它在后台运行,但您可以在需要时与它互动。您还可以打开多个关系窗口,分别显示不同类型的信息。

The Relation Window runs in the background and tracks what symbols you have selected. The beauty of the Relation Window is that you don’t have to do anything special. It works in the background while you work, but you can interact with it when you want to. You can also have several Relation Windows open, each show­ing different types of information.

1, Outline and Graph Views (大纲和图表视图)

关系窗口有两种视图: 大纲视图和图形视图。图形视图将符号显示为图形节点,并用线条将它们连接起来。关系图选项命令(关系窗口右键菜单中提供)可让您控制图形视图的外观。

The Relation Window has two types of views: Outline view and Graph view. The Graph view shows symbols as graph nodes with lines connecting them. The Relation Graph Options command (available on the Relation Window right-click menu) gives you control over the appearance of the graph view.

Outline View (大纲视图)

关系窗口大纲视图是关系层次结构的紧凑文本视图。您可以单击以展开或折叠大纲中的层级。

The Relation Window outline view is a compact, textual view of the relation hierarchy. You can click to expand and collapse levels in the outline.

Graph View(图形视图)

关系窗口图形视图是与大纲视图相同的关系的可视化表示。您可以展开和折叠图形中的节点。可以选择水平图形布局或垂直图形布局。您还可以打印图表,或将图表图像复制到系统剪贴板,以便在其他图像程序中进行处理。

The Relation Window graph view is a visual representation of the same relationship as the outline view. You can expand and collapse nodes in the graph. You can select either a horizontal graph layout, or a vertical graph layout. You can also print the graph, or copy the graph images to the system clipboard so you can pro­cess it in another imaging program.

要展开或折叠节点,请先将鼠标光标悬停在水平图形中节点的右边缘或左边缘上(或垂直图形中节点的顶部或底部中间)。鼠标光标将包含一个 + 或 - 符号。单击即可展开或折叠。

To expand or collapse a node, hover the mouse cursor first over the right or left edge of the node in a horizon­tal graph (or the top or bottom middle of a node in a vertical graph). The mouse cursor will contain a + or - symbol. Click to expand or collapse.

右键单击 "关系窗口",选择 "关系窗口图形选项",即可选择图形视图选项。请参阅: 关系窗口图形选项。

Relation Window Right-Click Menu

2, Relationship Rules (关系规则)

选择符号时显示的关系视图取决于符号的类型。您可以在 "关系窗口选项 "中对此进行控制。例如,您可以指定如果在源代码中选择一个函数,关系窗口将显示对该函数的引用。而如果选择一个类名,关系窗口将显示从该类派生出来的类。

The relation view that appears when you select a symbol depends on the type of symbol. You have control over this in the Relation Window Options. For example, you can specify that if you select a function in your source code, the Relation Window will show references to that function. And, if you select a class name, the Relation Window will show the classes derived from it.

每次 "关系窗口"展开一个符号以显示新的层级时,展开所代表的关系都是基于被展开的符号类型。这意味着每个关系窗口都有可能显示多种关系。 请参阅: 关系窗口选项。

Each time the Relation Window expands a symbol to show a new level, the relationship represented by the expansion is based on the type of symbol being expanded. That means each Relation Window can potentially show multiple relationships.  See: Relation Window Options.

Relationship Types (关系类型)

这些关系可分为以下几大类,从计算速度最快到最慢依次排列:

* 包含 - 显示当前符号的内容。例如,结构体的成员。

* 调用 - 显示当前符号引用了哪些其他符号。例如,当前函数调用的函数。

* 调用和调用者 - 显示分割图;一边是当前函数调用的函数,另一边是调用当前函数的函数。

* 引用 - 显示哪些其他符号引用了当前符号。例如,调用当前函数的函数。

The relationships fall into these general categories, listed from computationally the fastest to slowest:

* Contains – show the contents of the current symbol. For example, the members of a struct.

* Calls – show what other symbols are referred to by the current symbol. For example, functions that are called by the current function.

* Calls and Callers - show a split graph; one side are the functions called by the current function, the other side is the functions that call the current function.

* References – show what other symbols refer to the current symbol. For example, functions that call the current function.

3, Call Graphs (调用图)

可以对函数调用图关系进行过滤,以便只显示您认为最有趣的路径。关系窗口属性对话框中的 "调用图过滤 "按钮将带您进入一个对话框,您可以通过指定要排除的特定函数来控制过滤。您还可以通过代码度量限制过滤函数。

The function call graph relationships can be filtered to show only what you consider the most interesting paths. The “Call Graph Filtering” button in the Relation Window Properties dialog box takes you to a dialog box that lets you control the filtering by specifying particular functions you want to exclude. You can also fil­ter functions out by code metrics constraints.

请注意,Source Insight 将 C/C++ 宏视为合法的类似函数的符号,因此 C/C++ 宏可能会显示在调用图中。如果需要,可以在调用图过滤对话框中将其过滤掉。

Note that Source Insight considers C/C++ macros legitimate function-like symbols, and so C/C++ macros may show up in a call graph. You can filter them out in the Call Graph Filtering dialog box if you want.

Relation Window Performance (关系窗口性能)

关系窗口需要进行一些处理。某些关系的计算速度较慢。对于大型项目,"引用 "关系的计算速度最慢。

The Relation Window requires some processing. Some relationships are slower to compute. For very large projects, the “References” relationship will be the slowest to compute.

4, Multiple Relation Windows (多个关系窗口 )

您可以拥有多个关系窗口实例,这样就可以同时显示多个关系。每个关系窗口都有自己的关系选项。例如,一个窗口可以显示所选函数调用了哪些函数,另一个窗口可以显示哪些函数调用了所选函数。要创建新的关系窗口,请右键单击关系窗口并选择新建关系窗口。

You can have multiple Relation Window instances, so you can show multiple relationships at the same time. Each Relation Window has its own relationship options. For example, one window could show you what func­tions are called by the selected function, and another window could show you what functions make calls to the selected function. To create a new Relation Window, right-click on the Relation Window and select New Relation Window.

5, Customizing the Relation Window (自定义关系窗口)

关系窗口选项命令可从关系窗口工具栏或快捷菜单访问。您可以通过该命令控制显示哪些关系,以及窗口的显示方式。请参阅: 关系窗口选项。

The Relation Window Options command is accessed from the Relation Window toolbar or shortcut menu. You control what relationships are shown from this command, and how the window displayed. See: Relation Window Options.

您还可以使用关系图选项命令自定义关系窗口图表视图的外观。请参阅:关系窗口图形选项。

You can also customize the appearance of the Graph View of the Relation Window by using the Relation Graph Options command. See: Relation Window Graph Options.

6, Relation Window Graph Options(关系窗口图形选项)

具体使用可以参照帮助文档或者尝试一下。

7, Relation Window Options (关系窗口选项)

具体使用可以参照帮助文档或者尝试一下。

参考:

1,SourceInsight帮助

Features and Concepts -> Relation Window.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是requestIdleCallback?和requestAnimationFrame有什么区别?

什么是requestIdleCallback? 我们都知道React 16实现了新的调度策略(Fiber), 新的调度策略提到的异步、可中断,其实就是基于浏览器的 requestIdleCallback和requestAnimationFrame两个API。 在 JavaScript 中,requestIdleCallback 是一个用于执行回调函…

Linguistic Steganalysis in Few-Shot Scenario论文阅读笔记

TIFS期刊 A类期刊 新知识点 Introduction Linguistic Steganalysis in Few-Shot Scenario模型是个预训练方法。 评估了四种文本加密分析方法,TS-CSW、TS-RNN、Zou、SeSy,用于分析和训练的样本都由VAE-Stego生产(编码方式使用AC编码)。 实验是对比在少样…

从零开始部署一个网站详细图文教程——腾讯云的服务器、SSL证书,阿里云的域名,七牛云的对象存储、CDN等

文章目录 前期准备连接服务器配置Golang环境安装配置MySQL安装配置Redis安装配置Nginx安装Node域名解析SSL证书下载启动项目配置CDN加速总结 前期准备 云服务器(必备)、已经备案的域名(必备),已签发的SSL证书&#xf…

ssh-keygen(centos)

A—免密登陆—>B (1)A 机器,通过命令”ssh-keygen -t rsa“, 生成id_rsa,id_rsa.pub authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 know_hosts : 已知的主机公钥…

index函数

字符串的index函数可以查找字符串里(某范围内)某子串出现的位置(从左)。字符串的index函数的语法格式: S.index(sub [,start [,end]]) -> int 函数的返回值为整形,即位置。sub为要查找的子串,start参数的含义是从S字符串的第start位置开始…

25. 深度学习进阶 - 权重初始化,梯度消失和梯度爆炸

文章目录 权重初始化梯度消失与梯度爆炸 Hi,你好。我是茶桁。 咱们这节课会讲到权重初始化、梯度消失和梯度爆炸。咱们先来看看权重初始化的内容。 权重初始化 机器学习在我们使用的过程中的初始值非常的重要。就比如最简单的wxb,现在要拟合成一个yha…

【计算机网络】虚拟路由冗余(VRRP)协议原理与配置

目录 1、VRRP虚拟路由器冗余协议 1.1、协议作用 1.2、名词解释 1.3、简介 1.4、工作原理 1.5、应用实例 2、 VRRP配置 2.1、配置命令 1、VRRP虚拟路由器冗余协议 1.1、协议作用 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF…

Linux学习笔记 CenOS6.3 yum No package xxx available

环境CenOS [roothncuc ~]# cat /etc/issue CentOS release 6.2 (Final) Kernel \r on an \m安装gcc的时候提示没有包 [roothncuc ~]# sudo yum install gcc gcc-c libstdc-devel Loaded plugins: refresh-packagekit, security Setting up Install Process No package gcc a…

temu的产品发布后在哪里显示

temu是一款备受瞩目的产品,其发布后引起了广泛的关注。但是,很多人对于temu产品发布后在哪里显示存在疑惑。本文将深入探讨temu产品的展示方式和关键特点,帮助读者更好地了解temu产品在发布后的展示位置。 先给大家推荐一款拼多多/temu运营工…

【报错栏】(Vue) Invalid handler for event “click“: got undefined

Property or method "add" is not defined on the instance but referenced during render. 翻译: 属性或方法“add”未在实例上定义,但在渲染期间引用。 Invalid handler for event "click": got undefined 翻译: …

用bat制作图片马——一句话木马

效果图 代码 ECHO OFF TITLE PtoR MODE con COLS55 LINES25 color 0A:main cls echo.当前时间:%date% %time% echo.欢迎使用图片马制作工具 echo.请确保图片和php在同一路径下 echo.echo 请将图像文件拖放到此窗口并按 Enter: set /p "imagefile&q…

肖sir__搭建环境报错:com.alibaba.druid:type=DruidDataSourceStat异常

报错现象: 解决方案: 同一个服务器配置多个tomcat,而这些tomcat里边的项目配置的数据库连接池都是用alibaba.druid。下面说下我的解决过程,首先,修改tomcat bin目录下的catalina.sh,添加如下代码: 代码如…

Siemens S7-300主站Profibus网络设定以及OMRON设定

1.100L流量秤,历史值,D3426,D3427,7位 2.次数,D166,D177,5位 3.PROFIBUS地址03# 1.FA1,历史值,D3426,D3427,6位 2.包数区,D166,D177,5位 3.PROFIB…

前端:实现二级菜单(点击实现二级菜单展开)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

【趣味篇】Scratch之windows11系统

【作品展示】windows11系统 操作&#xff1a;点击小绿旗进入windows11主页面&#xff0c;不仅是能打开浏览器&#xff0c;还可以进行背景切换等功能。

大数据——一文详解数据仓库概念(数据仓库的分层概念和维度建模详解)

1、ods是什么&#xff1f; ods层最好理解&#xff0c;基本上就是数据从源表拉过来&#xff0c;进行etl&#xff0c;比如MySQL映射到Hive&#xff0c;那么到了Hive里面就是ods层。ods全称是 Operational Data Store&#xff0c;操作数据存储——“面向主题的”&#xff0c;数据…

突破界限:R200科研无人车,开辟研究新天地

提到科研无人车&#xff0c;大家可能首先想到的是其在自动驾驶和其他先进技术领域的应用。然而&#xff0c;随着科技的不断进步&#xff0c;科研无人车已经在智慧城市建设、商业服务、地质勘探、环境保护、农业技术革新、灾害应急和自动化服务等多个领域发挥着至关重要的作用。…

Linux MTR(My TraceRoute)command

Internet上有许多小型网络测试工具:Ping、Traceroute、Dig、Host等。 但是&#xff0c;这些工具的功能都比较单一。今天会给大家分享一个包含ping和traceroute功能的工具&#xff1a;MTR 文章目录 什么是MTR&#xff1f;MTR可以提供哪些功能Linux MTR可用选项Linux MTR用法推荐…

【UGUI】事件侦听EventSystem系统0学

前言介绍 EventSystem是Unity UGUI中的一个重要组件&#xff0c;用于处理用户输入事件&#xff0c;如点击、拖拽、滚动等。它负责将用户输入事件传递给合适的UI元素&#xff0c;并触发相应的事件回调函数&#xff08;就是你想要做的事情&#xff0c;自定义函数&#xff09;。 …

FPGA程序执行相关知识点

1.目前&#xff0c;大多数FPGA芯片是基于 SRAM 的结构的&#xff0c; 而 SRAM 单元中的数据掉电就会丢失&#xff0c;因此系统上电后&#xff0c;必须要由配置电路将正确的配置数据加载到 SRAM 中&#xff0c;此后 FPGA 才能够正常的运行。 常见的配置芯片有EPCS 芯片 &#x…