0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何選擇合適的工具來閱讀源代碼

strongerHuang ? 來源:Mculover666 ? 作者:Mculover666 ? 2022-03-30 14:01 ? 次閱讀

在做嵌入式 Linux 軟件開發(fā)的時候,經(jīng)常會閱讀大型工程源碼,比如 uboot 源代碼,Linux Kernel 源碼等。

所以,選擇一個合適的工具來閱讀源代碼,變?yōu)榱艘粋€經(jīng)久不衰的話題

閱讀源碼的時候,其實(shí)無非也就兩個重要的功能:

① 定義或者聲明快速跳轉(zhuǎn)

② 快速搜索指定內(nèi)容

另外還有一些功能是和開發(fā)體驗(yàn)相關(guān)的,比如:

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

② 工具是否方便修改編輯內(nèi)容

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

目前常用的就是 Source Insight 和 VS Code,下面就來按照上述需求進(jìn)行對比,看看哪個更適合?

創(chuàng)建代碼工程

Source Insight 在閱讀工程代碼時,可以通過創(chuàng)建 Source Insight 工程來選擇哪些文件加入,哪些文件不加入。

對于 uboot 這種包含有大量板級文件夾的工程,加入之后其中的文件只和目前移植的這款處理器有關(guān),這個功能是非常有優(yōu)勢的,也是眾多工程師喜愛 Source Insight 的原因。

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

相比之下,VS Code并不提供這種選擇加入的功能,VS Code 非常粗暴,文件夾就是工作區(qū),只需要打開源碼文件夾,所有文件全部加入:

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

相比之下,我覺得 Source Insight 勝出,VS Code 這種將所有文件一股腦全部加入的方式,在查找文件時非常麻煩。

文件架構(gòu)

在 Source Insight 中,打開一個文件的時候,會列出當(dāng)前文件中所有預(yù)處理、宏定義、變量、函數(shù)的架構(gòu),如圖:

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

在 VS Code 中打開文件時也有同樣的功能,但又是一股腦的按照順序?qū)⑺泻瘮?shù)聲明和定義列出,實(shí)際查看時也沒有什么太多作用:

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

在文件整體架構(gòu)方面,Source Insight 勝出,VS Code 對于代碼架構(gòu)方面的顯示,還需要再優(yōu)化。

定義跳轉(zhuǎn)功能

在 Source Insight 中,可以右鍵跳轉(zhuǎn)函數(shù)聲明或者直接按住 Ctrl 點(diǎn)擊函數(shù)名稱,如果定義有重復(fù)會先提示,供你選擇,如圖:

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

在 VScode 中,首先需要安裝 C/C++擴(kuò)展,然后才支持定義跳轉(zhuǎn),可以按住 Ctrl 鍵點(diǎn)擊或者右鍵跳轉(zhuǎn):

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

如果有重復(fù)也會出現(xiàn)提示,選擇需要查看哪個定義。在定義跳轉(zhuǎn)功能上,兩者持平,功能基本都夠用。

全局搜索指定內(nèi)容

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

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

在 VS Code 中也提供了全局搜索的功能,但是由于它將所有文件都包含進(jìn)來了,無用的搜索結(jié)果比較多:

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

所以,在搜索功能上,由于 Source Insight 先天性的優(yōu)勢,本輪勝出。

主題設(shè)置

閱讀源碼需要很長時間,所以提供一個舒服的主題也是很重要的。Source Insight 提供的主題有:

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

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

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

Source Insight 提供的這些主題我覺得還行,但換出來感覺效果都比較怪,沒有那么舒服,相比之下 VS Code 的主題做的就比較好,無論亮色還是暗色看著都很舒服,對于我個人而言,本輪 VS Code 勝出。

其他功能

Source 除了我上述說的主要功能之外,還有非常多的功能,但我都沒怎么用過。

此處,我必須要說一下 VS Code,因?yàn)?Uboot 源碼需要在 linux 上編譯,但是我日常使用的系統(tǒng)是 Windows,所以我一般將 VSCode 安裝在 Windows 上,使用 VS Code 提供的遠(yuǎn)程 SSH 功能,去連接遠(yuǎn)程 Linux 主機(jī),它會將遠(yuǎn)程主機(jī)上的目錄直接作為工作區(qū),另外還提供了集成終端,修改后直接在終端中編譯即可,如圖:

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

另外,VSCode 內(nèi)部集成了 git 可視化功能,可以方便的使用 git 管理代碼。相比之外,Source Insight 在修改文件之后,還需要把修改的文件上傳到 Linux 服務(wù)器去編譯,過程有點(diǎn)繁瑣。所以,在額外功能的擴(kuò)展性上,我覺得 VScode 勝出。

總結(jié)

經(jīng)過上述比較,我來說說我的體驗(yàn)和看法:Source Insight 就像是一個老大哥,基本功很扎實(shí),比如源碼查看,文件架構(gòu)列表這些,很方便實(shí)用,在閱讀代碼的時候非常方便,但在開發(fā)時相對不太方便。對于它的文件選擇加入功能,其實(shí)我是不太喜歡的,這么龐大的源碼工程,既然我知道哪些文件有用,哪些文件沒用,那我還看啥呢?所以對初學(xué)者不太友好。而 VS Code 呢,就是一個年輕小伙,后起之秀,比如主題隨便換,可以遠(yuǎn)程連接 Linux 主機(jī)進(jìn)行開發(fā),Git 可視化擴(kuò)展等等,各種炫酷功能,但是基本功太不扎實(shí),在閱讀源碼時的基礎(chǔ)功能沒做好,但是在開發(fā)時非常順手。

原文標(biāo)題:兩款工具對比:Source Insight vs VS Code

文章出處:【微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:彭菁
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    18927

    瀏覽量

    227231
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207913
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2942

    瀏覽量

    66444

原文標(biāo)題:兩款工具對比:Source Insight vs VS Code

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何選擇合適的過載保護(hù)器

    選擇合適的過載保護(hù)器是確保電氣系統(tǒng)安全穩(wěn)定運(yùn)行的關(guān)鍵步驟。以下將詳細(xì)闡述如何選擇合適的過載保護(hù)器,包括考慮的因素、選擇步驟以及注意事項(xiàng)。
    的頭像 發(fā)表于 09-06 11:53 ?125次閱讀

    hex可以轉(zhuǎn)成源代碼

    ,可以通過以下幾種方法嘗試獲取源代碼的近似形式: 反匯編 : 使用反匯編工具可以將Hex文件中的機(jī)器碼轉(zhuǎn)換回匯編語言。匯編語言是一種低級語言,它更接近于機(jī)器碼,但仍然具有一定的可讀性。 通過反匯編得到的匯編代碼可以提供程序
    的頭像 發(fā)表于 09-02 10:41 ?237次閱讀

    企業(yè)如何保護(hù)源代碼安全?做好源代碼防泄密工作

    出現(xiàn)了相似或相同功能的產(chǎn)品。這無疑引發(fā)了企業(yè)管理者們對于企業(yè)源代碼數(shù)據(jù)泄漏的深深憂慮。 許多企業(yè)錯誤地認(rèn)為,只要采用了版本管理工具如Git或SVN,代碼安全問題就得到了保障。然而,事實(shí)并非如此。版本管理
    的頭像 發(fā)表于 05-22 16:01 ?344次閱讀

    如何根據(jù)需求選擇合適的新加坡VPS操作系統(tǒng)?

    選擇合適的新加坡VPS操作系統(tǒng)您需要考慮哪些因素,如何根據(jù)需求選擇合適的新加坡VPS操作系統(tǒng)?rak部落小編為您整理發(fā)布選擇
    的頭像 發(fā)表于 05-10 11:14 ?323次閱讀
    如何根據(jù)需求<b class='flag-5'>選擇</b><b class='flag-5'>合適</b>的新加坡VPS操作系統(tǒng)?

    【開源鴻蒙】下載OpenHarmony 4.1 Release源代碼

    本文介紹了如何下載開源鴻蒙(OpenHarmony)操作系統(tǒng) 4.1 Release版本的源代碼,該方法同樣可以用于下載OpenHarmony最新開發(fā)版本(master分支)或者4.0 Release、3.2 Release等發(fā)布版本的源代碼。
    的頭像 發(fā)表于 04-27 23:16 ?592次閱讀
    【開源鴻蒙】下載OpenHarmony 4.1 Release<b class='flag-5'>源代碼</b>

    怎樣選擇合適的貼片電解電容?

    。 2.考慮電路需求 你需要根據(jù)你的電路需求選擇合適的貼片電解電容。例如,如果你的電路需要一個能夠承受25V耐壓、存儲10uF電容量的高頻電解電容,那么你就需要選擇一個滿足這些條件的
    的頭像 發(fā)表于 03-14 14:23 ?376次閱讀
    怎樣<b class='flag-5'>選擇</b><b class='flag-5'>合適</b>的貼片電解電容?

    如何選擇合適的負(fù)載功率確保電源適配器的正常工作?

    負(fù)載功率對電源適配器有何影響?如何選擇合適的負(fù)載功率確保電源適配器的正常工作? 負(fù)載功率對電源適配器的影響包括功率損耗、熱量產(chǎn)生、效率降低等方面。選擇
    的頭像 發(fā)表于 01-30 16:51 ?745次閱讀

    源代碼審計(jì)怎么做?有哪些常用工具

    源代碼審計(jì)是一種通過檢查源代碼發(fā)現(xiàn)潛在的安全漏洞的方法。 下面是常用的源代碼審計(jì)工具: 1、Fortify:通過內(nèi)置的五大主要分析引擎,對
    發(fā)表于 01-17 09:35

    智能制造行業(yè)--客戶現(xiàn)場調(diào)試源代碼如何防泄密

    我國近幾年傳統(tǒng)制造向智能制造的轉(zhuǎn)變,很多制造企業(yè)不僅有自己公司的圖紙文件需要保密,企業(yè)的有很多源代碼也需要保密,但是對于源代碼采用圖紙防泄密的方式是不可取的,源代碼防泄密比圖紙文件防泄密做起來更加
    的頭像 發(fā)表于 01-11 16:27 ?338次閱讀
    智能制造行業(yè)--客戶現(xiàn)場調(diào)試<b class='flag-5'>源代碼</b>如何防泄密

    如何選擇合適的伺服聯(lián)軸器?

    詳細(xì)了解將非常有助于選擇合適的聯(lián)軸器。不同的伺服連軸器存在著其自身的優(yōu)缺點(diǎn)。本文旨在向伺服聯(lián)軸器的終端用戶介紹不同聯(lián)軸器的性能,同時指出設(shè)計(jì)中要考慮的因素以及如何針對不同的應(yīng)用情況選擇合適
    的頭像 發(fā)表于 12-25 16:35 ?655次閱讀
    如何<b class='flag-5'>選擇</b><b class='flag-5'>合適</b>的伺服聯(lián)軸器?

    為什么安秉信息的源代碼防泄密軟件這么穩(wěn)定?

    現(xiàn)在很多研發(fā)性企業(yè)都會意識到企業(yè)的源代碼文件需要防泄密保護(hù),現(xiàn)在很多企業(yè)對于源代碼只是用了git或svn版本管理服務(wù)器進(jìn)行了簡單的代碼統(tǒng)一管控。雖然現(xiàn)在對于源代碼防泄密,有專業(yè)的
    的頭像 發(fā)表于 12-05 10:21 ?418次閱讀
    為什么安秉信息的<b class='flag-5'>源代碼</b>防泄密軟件這么穩(wěn)定?

    安秉信息源代碼圖紙防泄密方案,電路圖紙,源代碼文件

    安秉信息源代碼圖紙防泄密方案,電路圖紙,源代碼文件
    發(fā)表于 12-01 16:56 ?0次下載

    如何根據(jù)光模塊挑選合適的光纖跳線?

    如何根據(jù)光模塊挑選合適的光纖跳線? 根據(jù)光模塊挑選合適的光纖跳線需要考慮多種因素,包括連接接口類型、光纖尺寸、傳輸介質(zhì)和網(wǎng)絡(luò)需求等。本文將從這四個方面詳細(xì)介紹。 一、連接接口類型
    的頭像 發(fā)表于 11-28 15:33 ?976次閱讀

    PCB表面處理的選擇和優(yōu)化,如何選擇合適的工藝?

    PCB表面處理的選擇和優(yōu)化,如何選擇合適的工藝?
    的頭像 發(fā)表于 11-24 17:16 ?623次閱讀

    Labview開發(fā)電梯控制源代碼

    Labview開發(fā)電梯控制源代碼
    發(fā)表于 10-25 18:23 ?7次下載