• 嵌入式为何钟爱SourceInsight,主要因为这个功能~


    已剪辑自: https://mp.weixin.qq.com/s/F-gafwbZswpnY8EaCz8HxQ

    不管是玩单片机还是嵌入式linux,只要是与硬件结合比较紧密的部分目前基本上还是C语言,当然了,不知道以后C语言会不会被取代,即便哪天被某种更加优秀的语言取代,对于大部分使用者而言也仅仅只是语法发生一些变化而已。更何况目前C语言渗透到嵌入式行业的各个角落,即使编程语言需要替代也是一个渐变的过程。想必大家在入门C语言的时候,一定会碰到这样的问题:“C语言程序的基本组成单位是什么?”,如果你没坚定的回答上来,那得怀疑一下自己的C语言功底了。没错,C语言程序是由函数构成的,函数是C程序的基本组成单位。这句话很简单,但是也同样太值得深入思考了,为什么不是变量、也不是执行顺序呢?在bug菌往期的一些文章中,其实隐隐约约有提到过一些,只要你把函数名称规范好、函数封装有理有据,基本上不需要写太多的注释,函数的名称就是最好的“文档”说明,而要读懂这篇“文档”无非就是要理顺函数之间的调用关系。没错,理顺函数之间的调用关系确实是你理解C语言程序、了解其代码原理和实现过程的关键,特别是一些大型工程代码,几乎不可能留给你足够的时间一句一句的参悟,更何况很多算法和处理策略都是比较成熟的实现,没必要重复的、花大量的时间去理解,当然了,如果你是针对性的学习和优化那就另当别论了。对于理顺函数之间的调用关系不同的人有不同的方式方法,比如一个函数一个函数的粗略阅读,然后单独拧出相关函数进行记录和整理,最后变成流程图或者结构图等等。也有朋友通过直接在函数内部添加打印函数,程序一旦运行就可以在相应的打印窗口列出函数之间的调用层次关系。当然还有非常多的方法,每种方法有优劣,但从效率方面考虑还是让软件根据我们的需求自动识别函数调用关系,并以一种更加形象直观的方式呈现给我们来使用和理解。对于目前在嵌入式软件中比较优秀的编辑器都有着查看函数调用关系的功能或者插件,bug菌用得比较多的还是Souceinsight的Relation Window窗口,你可能会问了为什么喜欢用SI?简洁、方便,能够满足我平时的阅码需求。

    3

    SI的Relation Window

    那么这里就根据我平时的使用,简单聊一聊SI这块的功能。

    SourceInsight的符号关系功能展示在如下位置打开:

    图片

    这里简单的编写了一个函数调用关系,来看看关系窗口的展示:

    图片

    可以看出函数调用关系已经为我们完整的展示。

    并且可以通过点击左下角相关设置来改变函数调用关系的样式,SI的关系窗口主要是两种类型的视图:outline大纲视图和图形视图,前面我们展示了大纲视图,如下是另外两种图形视图展示:

    图片

    图片

    有这功能在手,理解程序的速度不知道加快多少倍?

    当然了再好的功能也需要使用者多熟悉,并勤加练习,不仅如此有时候我们需要了解更多的符号信息或者筛选出我们想要了解的关系,那么这些配置项目都可以在关系窗口的配置中供我们使用。

    比如是否需要对符号进行自动跟踪的设置,对函数调用展开到第几层,对于关系视图中那些类型的符号可以过滤或者展示等等都可以根据你所要展示的效果进行设置,以便我们剔除掉一些不需要关注的符号关系信息,更加直观的分析整个工程的全貌。

  • 相关阅读:
    阿里 P9 架构师力荐:Java 面试必刷的 17 套一线大厂真题(含答案)
    ARM DAY3
    docker 映射端口穿透内置防火墙
    leaflet实现自定义线、矩形和扇形的绘制
    github 自定义主页,使用waka-readme配合wakapi统计代码时长
    类和对象介绍
    Python学习:函数中定义参数的四种方式
    Linux-源码安装go
    11.9 表达式求值
    基于SpringBoot的英语词汇小程序的设计与实现(期末大作业)+附源码+mysql+程序
  • 原文地址:https://blog.csdn.net/qq_41854911/article/details/127962439