0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何选择合适的工具来阅读源代码

strongerHuang 来源:Mculover666 作者:Mculover666 2022-03-30 14:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在做嵌入式 Linux 软件开发的时候,经常会阅读大型工程源码,比如 uboot 源代码,Linux Kernel 源码等。

所以,选择一个合适的工具来阅读源代码,变为了一个经久不衰的话题。

阅读源码的时候,其实无非也就两个重要的功能:

① 定义或者声明快速跳转

② 快速搜索指定内容

另外还有一些功能是和开发体验相关的,比如:

① 工具的主题(亮色和暗色)

② 工具是否方便修改编辑内容

③ 工具是否还提供其它的方便功能

目前常用的就是 Source Insight 和 VS Code,下面就来按照上述需求进行对比,看看哪个更适合?

创建代码工程

Source Insight 在阅读工程代码时,可以通过创建 Source Insight 工程来选择哪些文件加入,哪些文件不加入。

对于 uboot 这种包含有大量板级文件夹的工程,加入之后其中的文件只和目前移植的这款处理器有关,这个功能是非常有优势的,也是众多工程师喜爱 Source Insight 的原因。

159b3f22-ac30-11ec-aa7f-dac502259ad0.png

相比之下,VS Code并不提供这种选择加入的功能,VS Code 非常粗暴,文件夹就是工作区,只需要打开源码文件夹,所有文件全部加入:

15aa8ab8-ac30-11ec-aa7f-dac502259ad0.png

相比之下,我觉得 Source Insight 胜出,VS Code 这种将所有文件一股脑全部加入的方式,在查找文件时非常麻烦。

文件架构

在 Source Insight 中,打开一个文件的时候,会列出当前文件中所有预处理、宏定义、变量、函数的架构,如图:

15bd8b4a-ac30-11ec-aa7f-dac502259ad0.png

在 VS Code 中打开文件时也有同样的功能,但又是一股脑的按照顺序将所有函数声明和定义列出,实际查看时也没有什么太多作用:

15d68a14-ac30-11ec-aa7f-dac502259ad0.png

在文件整体架构方面,Source Insight 胜出,VS Code 对于代码架构方面的显示,还需要再优化。

定义跳转功能

在 Source Insight 中,可以右键跳转函数声明或者直接按住 Ctrl 点击函数名称,如果定义有重复会先提示,供你选择,如图:

15f06308-ac30-11ec-aa7f-dac502259ad0.png

在 VScode 中,首先需要安装 C/C++扩展,然后才支持定义跳转,可以按住 Ctrl 键点击或者右键跳转:

1602db46-ac30-11ec-aa7f-dac502259ad0.png

如果有重复也会出现提示,选择需要查看哪个定义。在定义跳转功能上,两者持平,功能基本都够用。

全局搜索指定内容

在 Source Insight 中,提供的搜索功能如下:

161490b6-ac30-11ec-aa7f-dac502259ad0.png

在 VS Code 中也提供了全局搜索的功能,但是由于它将所有文件都包含进来了,无用的搜索结果比较多:

16290f8c-ac30-11ec-aa7f-dac502259ad0.png

所以,在搜索功能上,由于 Source Insight 先天性的优势,本轮胜出。

主题设置

阅读源码需要很长时间,所以提供一个舒服的主题也是很重要的。Source Insight 提供的主题有:

16391f80-ac30-11ec-aa7f-dac502259ad0.png

VScode 提供的主题就非常棒了:

16449838-ac30-11ec-aa7f-dac502259ad0.png

Source Insight 提供的这些主题我觉得还行,但换出来感觉效果都比较怪,没有那么舒服,相比之下 VS Code 的主题做的就比较好,无论亮色还是暗色看着都很舒服,对于我个人而言,本轮 VS Code 胜出。

其他功能

Source 除了我上述说的主要功能之外,还有非常多的功能,但我都没怎么用过。

此处,我必须要说一下 VS Code,因为 Uboot 源码需要在 linux 上编译,但是我日常使用的系统是 Windows,所以我一般将 VSCode 安装在 Windows 上,使用 VS Code 提供的远程 SSH 功能,去连接远程 Linux 主机,它会将远程主机上的目录直接作为工作区,另外还提供了集成终端,修改后直接在终端中编译即可,如图:

16637f3c-ac30-11ec-aa7f-dac502259ad0.jpg

另外,VSCode 内部集成了 git 可视化功能,可以方便的使用 git 管理代码。相比之外,Source Insight 在修改文件之后,还需要把修改的文件上传到 Linux 服务器去编译,过程有点繁琐。所以,在额外功能的扩展性上,我觉得 VScode 胜出。

总结

经过上述比较,我来说说我的体验和看法:Source Insight 就像是一个老大哥,基本功很扎实,比如源码查看,文件架构列表这些,很方便实用,在阅读代码的时候非常方便,但在开发时相对不太方便。对于它的文件选择加入功能,其实我是不太喜欢的,这么庞大的源码工程,既然我知道哪些文件有用,哪些文件没用,那我还看啥呢?所以对初学者不太友好。而 VS Code 呢,就是一个年轻小伙,后起之秀,比如主题随便换,可以远程连接 Linux 主机进行开发,Git 可视化扩展等等,各种炫酷功能,但是基本功太不扎实,在阅读源码时的基础功能没做好,但是在开发时非常顺手。

原文标题:两款工具对比:Source Insight vs VS Code

文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20149

    浏览量

    247217
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217990
  • 源代码
    +关注

    关注

    96

    文章

    2953

    浏览量

    69661

原文标题:两款工具对比:Source Insight vs VS Code

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何选择适合的智驾仿真工具进行场景生成和测试?

    在自动驾驶技术日益发展的背景下,选择合适的智驾仿真工具进行场景生成和测试显得尤为重要。该工具不仅需要支持高精度的场景重建,还需满足多种环境条件和传感器模型的兼容性。本文将深入探讨如何评
    的头像 发表于 11-25 10:32 152次阅读
    如何<b class='flag-5'>选择</b>适合的智驾仿真<b class='flag-5'>工具</b>进行场景生成和测试?

    如何选择合适的SC1溶液清洗硅片

    选择合适的SC1溶液清洗硅片需要综合考虑多个因素,以下是具体的方法和要点:明确污染物类型与污染程度有机物污染为主时:如果硅片表面主要是光刻胶、油脂等有机污染物,应适当增加过氧化氢(H₂O₂)的比例
    的头像 发表于 10-20 11:18 345次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的SC1溶液<b class='flag-5'>来</b>清洗硅片

    如何选择合适的实时操作系统

    选择合适的实时操作系统(RTOS,Real-Time Operating System)可能会影响你在不同行业的职业发展路径。
    的头像 发表于 09-09 14:47 807次阅读

    如何选择合适的直流负载或交流负载?

    如何选择合适的直流负载或交流负载?
    的头像 发表于 08-04 17:53 783次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的直流负载或交流负载?

    如何选择合适的 BNC 连接器?接线工具与配件推荐

    线缆:配套的线缆要与BNC连接器的阻抗匹配。例如,75Ω的BNC连接器应搭配75Ω特性阻抗的同轴电缆,如RG-59线缆,确保信号传输全程阻抗匹配,减少信号失真。 选择合适的BNC连接器需综合考虑应用场景与性能指标,搭配优质的接线工具
    的头像 发表于 05-05 11:07 525次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的 BNC 连接器?接线<b class='flag-5'>工具</b>与配件推荐

    如何选择合适的台庆电感?

    选择合适的台庆电感时,需要根据实际应用场景和使用需求考虑多个因素。以下是一些关键的步骤和考虑因素: 一、了解电感的基本参数 额定电流 :根据电路中的功耗和电流负载来选择
    的头像 发表于 04-14 15:51 554次阅读

    源代码构建OpenVINO™后,无法获得Open Model Zoo工具怎么解决?

    OpenVINO™从源代码构建 使用 Pip 下载的 OMZ 工具:pip install omz-tools 遇到错误: ERROR: Could not find a version
    发表于 03-06 08:31

    怎么选择合适的境外云服务器?

    选择合适的境外云服务器需围绕业务需求、性能匹配、安全合规、成本效益四大核心维度展开,通过精准定位目标用户群体、评估资源需求、平衡安全与成本,实现最优配置。以下UU云小编将详细介绍怎么选择合适
    的头像 发表于 02-28 09:54 1085次阅读

    如何选择合适的铝壳电阻

    合适的阻值。同时,要考虑电路中其他元件对阻值的影响以及可能出现的误差范围。 功率决定了铝壳电阻能够承受的最大功率值,一般按照实际使用功率的1.5倍选择铝壳电阻的功率,以确保其在工作过程中不会因过载而
    发表于 02-20 13:48

    源代码加密、源代码防泄漏c/c++与git服务器开发环境

    源代码加密对于很多研发性单位来说是至关重要的,当然每家企业的业务需求不同所用的开发环境及开发语言也不尽相同,今天主要来讲一下c++及git开发环境的源代码防泄密保护方案。企业源代码泄密场景一、在很多
    的头像 发表于 02-12 15:26 877次阅读
    <b class='flag-5'>源代码</b>加密、<b class='flag-5'>源代码</b>防泄漏c/c++与git服务器开发环境

    如何选择合适的PLD型号

    选择合适的PLD(可编程逻辑器件)型号时,需要考虑多个因素,以确保所选器件能够满足应用需求并具有成本效益。以下是一些关键的步骤和考虑因素: 一、明确应用需求 功能需求 :确定PLD需要实现的具体
    的头像 发表于 01-20 09:40 945次阅读

    浅谈如何选择合适的传感器

          选择合适的传感器需要考虑多个因素,以确保传感器能够满足特定的应用需求和工作环境。以下是一些关键的步骤和考虑因素:       一、明确应用场景与需求       1. 了解测量的物理量
    的头像 发表于 01-20 00:11 1202次阅读
    浅谈如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的传感器

    如何选择合适的LIBS设备进行科研?

    激光诱导击穿光谱(LIBS)技术是一种快速、原位、多元素分析的工具,广泛应用于材料科学、环境监测、地质研究等领域。选择合适的LIBS设备对于科研工作的成功至关重要。本文将探讨在科研中如何选择
    的头像 发表于 01-14 18:14 734次阅读
    如何<b class='flag-5'>选择</b><b class='flag-5'>合适</b>的LIBS设备进行科研?

    如何选择合适的AWG线规

    在电气工程和电子制造中,线规的选择是一个关键因素,它直接影响到系统的安全性、效率和成本。AWG(美国线规)是一种广泛使用的线规系统,它根据导线的直径分类。选择合适的AWG线规需要考虑
    的头像 发表于 01-13 16:36 2230次阅读

    怎么选择合适的漏电保护开关

    选择合适的漏电保护开关是确保家庭电气安全的重要步骤。以下是一些选择漏电保护开关的关键要点: 一、品牌与认证 品牌选择 :优先选择知名品牌,因
    的头像 发表于 12-20 16:54 4378次阅读