首页|资源下载
登录|注册

您现在的位置是:首页 > 技术阅读 >  使用 SourceInsight 的第四大理由,关键中的关键

使用 SourceInsight 的第四大理由,关键中的关键

时间:2022-09-29

来源:公众号【鱼鹰谈单片机】

作者:鱼鹰Osprey

ID   :emOsprey


在前面的笔记《使用SourceInsight的三大理由,最后一点是关键!》中,鱼鹰介绍了使用 SourceInsight 的几个理由,说第三个理由很关键,也很有用,但是我发现低估了这个软件的功能。
最近耳边常常听到 VS Code 很香,说是神器什么的,简单用过之后,发现并不是那么好用,最重要的一点回跳功能就让人非常不爽,组合快捷键是 ctr + alt + -,你没看错,就是三个键组合,必须三个指头同时使用才能往回调(虽然可以修改快捷键,但还是感觉不舒服),我点点鼠标它不香吗?
编辑方面,我无法判断两者之间的优劣,但要说看不熟悉的代码,SI 在鱼鹰心里就是神器,没有之一,特别是让鱼鹰发现了它的第四点功能。

最近鱼鹰给各位道友提供了 CDC 代码供参考,文章中也写到建议使用 SI 查看,不知道有多少人尝试用它看代码了,不过看完本篇文章,你就会发现,香,真香!

一个变量或函数在哪里使用了?
这个用第三点理由足够了,但是你知道调用该函数或变量的上一级是谁吗?再上一级又是谁?
比如鱼鹰想看 USBD_WriteEP 这个函数被谁调用了,通过打开关系图,我们就可以清晰的知道调用者:
嘿,这个函数的调用关系还挺复杂的,并且可以看到有个函数和本身一样,并不算调用者,而是声明。
点击上述函数,即可看到声明位置:
但是我想看这些调用者又是被谁调用的,又该怎么办?
把鼠标移动到函数名后面,就会看到一个 + 号(如果看不到,可以暂停一会,如果还是看不到,看代码是否同步了或者该函数没有上级调用者):
此时再点击左键,你就会看到这个函数上一级调用者
再上一级嘞?
可以看到,函数最终是被 main函数给调用了(还有其它几个分支可以自行分析)。
这样,你就可以把 USBD_WriteEP 函数的所有关系都弄得清清白白,变量名同理。
虽然函数的身世已经清清白白了,但有些函数身世太复杂,又要看代码,又要看关系,窗口大小不够用啊,此时,你可以把它拖出来(SI版本为4.0):
整屏看:
如果是双屏,放到另一个屏中,看的更爽!
如果觉得占位置,往回拖就行了。
每次查看源码,关系图就变了,咋办?锁住它就 OK 了。
只要你不主动刷新(右边按钮为刷新),关系图就不会变化。并且还可以多看一个(锁定后,首先找下一个需要查看的函数或变量,然后点击以下按钮关闭再打开即可看俩关系图):
拖出来,两个屏就都是关系图了(没错,鱼鹰用双屏):
那怎么往回缩呢?
还有一种方法是,在需要展开和回缩的函数或变量里点击右键,即可看到缩放按钮:
看到这里,还不试试吗?


推荐阅读:
嵌入式系统优先级详解
KEIL 调试经验总结
线程CPU使用率到底该如何计算?
许久以后,你会感谢自己写的异常处理代码
终极串口接收方式,极致效率
延时功能进化论(合集)
如何写一个健壮且高效的串口接收程序?
打了多年的单片机调试断点到底应该怎么设置?| 颠覆认知

-THE END-



如果对你有帮助,记得转发分享哦


微信公众号「鱼鹰谈单片机

每周一更单片机知识

长按后前往图中包含的公众号关注


鱼鹰,一个被嵌入式耽误的畅销书作家

个人微信「EmbeddedOsprey

长按后打开对方的名片关注