飞道的博客

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

422人阅读  评论(0)

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

作者:鱼鹰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」

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


转载:https://blog.csdn.net/weixin_42876465/article/details/108439775
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场