Understand软件中文网站 > 使用教程 > Understand怎么生成代码调用关系图 Understand调用关系图缺少函数节点如何检查
教程中心分类
Understand怎么生成代码调用关系图 Understand调用关系图缺少函数节点如何检查
发布时间:2026/09/28 13:57:53

  想看一个函数调用了谁,可以从该函数生成Calls图;想看哪些函数调用了它,则查看Called By图。图中少了函数节点时,先别急着认定源码里没有这段调用。图形范围、隐藏设置,以及项目对代码的解析结果,都会影响最终显示。

  一、Understand怎么生成代码调用关系图

 

  先确定分析对象。以函数为起点,适合追踪一条调用链;以文件为起点,则适合查看文件内外的函数调用关系。

 

  1、从函数生成调用图

 

  ①打开已完成分析的Understand项目,在源码中找到目标函数。

 

  ②右键点击函数名,依次选择【Graphical Views】→【Calls】,查看它直接或间接调用的函数。

 

  ③需要反向查找调用者时,再右键该函数,依次选择【Graphical Views】→【Called By】。

 

  2、按文件查看调用关系

 

  ①在项目中找p到目标源文件,右键选择【Graphical Views】→【Calls&Called By】。

 

  ②在图形工具栏的【Variant】中选择【Calls】,查看向外发出的调用;需要同时观察调用者时,切换到【Butterfly】。

 

  ③如果选择了【Internal】,再与【Calls】视图对照,检查缺少的节点是否位于所选文件之外。Internal视图只显示当前范围内部的调用关系。

 

  二、Understand调用关系图缺少函数节点如何检查

 

  可以先搜索缺失的函数名。搜得到函数,却看不到图中的节点,优先检查图形设置;函数本身也搜不到,则应回到项目文件和解析配置。

 

  1、检查调用方向和图形范围

 

  ①确认当前打开的是【Calls】、【Called By】还是【Calls&Called By】。

 

  ②在图形工具栏点击【Variant】,切换到【Simplified】,重新查看完整调用树。

 

  ③若先前使用【Internal】或【Relationship】,切换到覆盖范围更广的视图,再查找目标函数。

 

  2、恢复被隐藏的节点

 

  ①在图形右侧的设置面板中查看【Visibility】,检查是否启用了隐藏节点的条件。

 

  ②点击【Show Hidden Nodes】恢复手动隐藏的节点;仍不确定设置来源时,点击【Restore Defaults】。

 

  ③检查调用层级设置,增加显示层数,再展开可继续查看的节点。图形的隐藏和层级选项都可能让后续函数暂时不出现在画面中。

 

  3、确认函数所在文件已加入项目

 

  ①依次点击【Project】→【Configure Project】,进入源文件列表,查找缺失函数所在的文件。

 

  ②若文件不在列表中,在文件树中右键选择【Add File…】或【Add Directory…】,补入对应源码。

 

  ③检查所在目录的文件类型筛选与排除条件;补齐后点击【Project】→【Analyze All Files】,再重新打开调用图。

  4、检查头文件和宏配置

 

  ①打开缺失函数的定义位置,查看相关代码是否被标记为未激活,以及函数名能否正确定位。

 

  ②依次点击【Project】→【Improve Project Accuracy】→【Missing Includes】,补充缺少的头文件目录。

 

  ③返回【Improve Project Accuracy】,打开【Undefined Macros】,按实际构建配置补充宏;随后点击【Project】→【Analyze All Files】。

 

  5、检查分析结果是否过期

 

  ①修改源码或项目配置后,点击【Project】→【Analyze All Files】,等待分析结束。

 

  ②通过顶部搜索栏输入函数名,确认Understand已识别该函数及其定义位置。

 

  ③从调用它的函数重新打开【Calls】,查看节点是否出现;若仍缺失,继续核对项目使用的语言版本与构建配置。

 

  三、怎样确认缺失的是节点还是调用关系

 

  函数能被搜索到,只说明它已进入项目数据库;要确认调用关系,还需查看该函数的引用记录。复杂项目中,函数指针、虚函数和不同构建配置也值得单独核对。

 

  1、用信息浏览器交叉检查

 

  ①右键点击发起调用的函数,选择【View Information】。

 

  ②在【Information Browser】中展开【Calls】,查找缺失的目标函数。

 

  ③若列表中存在该调用,返回图形检查范围和隐藏设置;若列表中也没有,打开对应源码,核对调用位置及解析状态。

 

  2、检查间接调用

 

  ①在源码中确认该调用是否通过函数指针或虚函数发起。

 

  ②检查被调用函数及其赋值、重写所在的文件是否都已加入项目。

 

  ③重新分析项目,打开【Calls】图查看可能的调用目标;有多个运行时目标时,逐一核对图中的连接。

 

  3、保存核对后的图形

 

  ①确认节点和调用方向后,在当前图形窗口点击【Export To File】。

 

  ②选择PNG或SVG格式,填写文件名并保存。

 

  ③打开导出的图,核对函数名称与连接关系,再用于文档或代码评审。

  总结

 

  调用关系图适合快速追踪代码,但它展示的是当前项目、当前解析配置下识别出的关系。图中少一个函数,可以先用搜索和信息浏览器确认函数与调用是否已被识别,再检查显示设置和源码范围;这样更容易找到真正需要调整的地方。希望这篇关于Understand生成调用关系图及检查缺失节点的介绍对大家有帮助。如有Understand相关需求,欢迎联系我们咨询。

135 2431 0251