0
点赞
收藏
分享

微信扫一扫

大型项目中函数太多,调用关系复杂,如何解决?

独兜曲 2022-02-06 阅读 58

背景

最近过年,和朋友在外面算是玩 high 了。快活了一周之后,玩也玩得差不多了,觉得还是得找点正事做做。于是找来了一个微型操作系统 ucore 分析源码。虽然说是小型的 OS ,但也有接近一万行代码,而且代码中逻辑和函数交互也不少,这可有点棘手。翻了翻实验指导书,发现指导书的 doc 上给了具体的解决办法。

函数调用可视化

看了看官方给的 ucore 实验指导书,发现里面有提到一个叫 Understand 的代码分析工具,可以将函数调用关系可视化,大概效果是这样的:
图中的箭头表示调用关系

图中的箭头表示调用关系

在这里插入图片描述

选中的边变为绿色

解释一下。当:
1.箭头始末是函数时,表示始端函数调用末端函数;
2.箭头始末是文件名时,表示始端文件中有函数调用了末端文件中的函数。
鼠标右键单击绿色边,显示具体的调用信息。除此以外,还可以跳转到源文件中函数调用处。比如下面第二张图中的第229行代码,即是下面第一张图中点击后跳转过来的。
在这里插入图片描述

鼠标右键单击绿色边,显示具体的调用信息。其中第1、2、3次调用均在 mksfs.c文件的第229行

在这里插入图片描述

跳转到 mksfs.c 文件第229行代码

下载方法

在官方网站下载自己电脑对应版本,我自己是在 Ubuntu 上操作,而 Ubuntu 属于 Linux 系统,于是便下载 Linux 版本
在这里插入图片描述

官方下载界面

下载完成之后,是一个压缩包,需要解压
在这里插入图片描述
解压后是这样。出现一个 scitools 文件夹,进入它
在这里插入图片描述
打开 scitools/bin/linux64/understand 即可成功运行
在这里插入图片描述
打开之后软件可能会提示你要交钱,不过不用担心。直接点击带 trial 字样的按键,然后填上自己的电子邮箱便可以免费体验了。

使用方法

在这里插入图片描述

左上角 File —> New —> Project 创建一个新项目

在这里插入图片描述

点击 Add Directory 为项目添加文件夹

Add Directory 添加你想要察看代码结构的文件的父级文件夹。我自己选择的是 ucore 实验中的保存第4个实验代码所用的文件夹
在这里插入图片描述

选 No 就行

直接选 No,无需编译
在这里插入图片描述

点击 Create Project 创建项目

进入项目后在左侧 Browser 中选中文件或者文件夹,再点击上方工具栏中的 Graphs 即可
在这里插入图片描述

选中文件夹或文件后点击工具栏中 Graphs

在这里插入图片描述

函数调用图最终效果

最后的话

Understand 其实是一款很强大的代码分析工具,因为本人做 OS 实验只用到了 Graph 功能,所以也只写了这部分相关的内容。Understand 还有很多其他的功能,有兴趣的朋友可以自己慢慢发掘。
最后祝大家新年快乐,不管是在代码里还是生活中,都能够玩得开心!

举报

相关推荐

0 条评论