Source Insight 函数调用关系使用技巧
Posted Li-Yongjun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Source Insight 函数调用关系使用技巧相关的知识,希望对你有一定的参考价值。
用处
要想了解大型工程的运行原理和过程,分析其函数调用关系是一个很有用的方法。比起自己一个个搜索、记录,使用工具效率会更高。Source Insight 就有一个显示函数调用关系的功能,非常好用。
PS:之前我都是手动搜索、记录,去理清函数调用关系。甚至添加打印,在程序运行时理清函数调用关系。现在回想起来好低能且低效。
操作
如图所示,点击①处的【Relation Window】按钮,就会出现右侧【Relation】窗口。该窗口下方有三种显示模式可供选择,我比较喜欢垂直的图像显示模式(如果调用关系能从上到下显示,而不是从下到上显示,就更好了),并且该窗口默认只显示一层调用关系,我们需要显示更多,这个后面会讲。当你随便点击源码中的某个函数或变量时,【Relation】窗口就会展示出该函数或变量的调用关系。
如果有时点击了函数,【Relation】窗口中的图像没有变化,可以点击②处的按钮重新生成一下。
过滤
不过,可以看到,【Relation】窗口中的函数调用关系貌似有点问题
怎么 hostapd_add_iface 显示调用了它自己,看代码也没发现它是递归函数呀,怎么回事。仔细看了一下,发现这两个函数前的图标不一样,鼠标悬停在它俩上方,发现下边那个是函数声明,上边那个才是函数定义。显然,我们只关心函数定义,声明在这里只会徒增麻烦,那怎样才能去掉呢?
点击【Relation】窗口下方的设置按钮,会弹出【Relation Window Options】窗口,上文中提到的层级也是在这里设置的,我这里设置为了最大也就是 10 级。然后点击【Symbol Types Filter】按钮,取消勾选【Function Prototype】,勾选这个选项会显示函数原型,也就是函数声明
点击【OK】,然后【Relation】窗口就变成了下图
很清晰明了了有木有。
优化
还没完,我们还可以点击【Graph Options】来修改显示元素的属性,让显示更加美观。
修改后
完结!
以上是关于Source Insight 函数调用关系使用技巧的主要内容,如果未能解决你的问题,请参考以下文章