RM新时代网站-首页

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

DeBug太枯燥?讓VS Code畫個圖

lviY_AI_shequ ? 來源:機器之心 ? 2020-05-12 09:19 ? 次閱讀

DeBug 太枯燥?讓 VS Code 畫個圖,自動幫你理清數(shù)據(jù)結(jié)構與代碼思路,這就是 Reddit 2K 多點贊的開源新工具。

項目地址:https://github.com/hediet/vscode-debug-visualizer 寫代碼,難免會遇到各種神奇的問題,代碼短我們在腦海中「運行」一遍也就差不多能找出原因。但代碼要是比較長,錯誤就會隱藏比較深了,這個時候,不論你是采用 print() 大法,還是善用 assert 語句,或者干脆設置斷點,DeBug 總是一條慢慢排除的道路。 那么,能不能有一種更優(yōu)雅的 DeBug 方式,以更簡潔的信息快速幫我們找到代碼的問題所在? 有的,VS Code 最新推出的可視化 DeBug,便能以圖的方式快速展示數(shù)據(jù)結(jié)構。 我們先看看效果,如下動圖將斷點設置為第 32 行定義雙向鏈表,隨后一行行運行代碼就會在右圖展現(xiàn)出對應的數(shù)據(jù)結(jié)構圖。

這種可視化非常優(yōu)雅,而且該工具也會根據(jù)數(shù)據(jù)結(jié)構以不同的方式展現(xiàn),例如樹形、表格、曲線和圖等。如下動圖展示幾種不同的可視化方式:

效果上確實非常驚艷,它與之前的 DeBug 方式采用完全不同的展現(xiàn)形式。目前該 VS Code Debug Visualizer 在 JavaScript/TypeScript 上有比較好的效果,在 C#、Java 和 PHP 上也正在積極測試,其它語言也還都能用。 正確的使用姿勢 安裝此擴展程序后,使用命令< Open a new Debug Visualizer View >打開新的可視化視圖。在此視圖里,設置斷點逐步執(zhí)行后,表達式的執(zhí)行與動態(tài)可視化都會展示在里面。右上角的刷新鍵可將當前的可視化工具視圖彈出到新的瀏覽器窗口,同時還可以通過展開詳細信息的窗口去選擇數(shù)據(jù)提取器以及可視化調(diào)試器。 可視化調(diào)試器使用的是特定的 JSON 數(shù)據(jù),相關支持的 JSON 數(shù)據(jù)模式可參考原 GitHub 項目。 當前的可視化表達式應該是作為 JSON 對象字符串來進行運算的,并與所支持的可視化調(diào)節(jié)器相匹配。而這個 JSON 字符串可能被單引號或者雙引號所包含(也有可能沒有引號),因此不能忽略轉(zhuǎn)義符。 舉一個案例:

"{ "kind": { "text": true }, "text": "some text more text" }". 對于 TypeScript/JavaScript 等語言,因為已經(jīng)集成了數(shù)據(jù)抽取器,因此可以直接自動可視化。而其它沒有數(shù)據(jù)抽取器的語言,就需要自定義數(shù)據(jù)結(jié)構與可視化器之間的關系了 多種可視化器皆可定制 該擴展還內(nèi)置了其他可自定義的可視化調(diào)節(jié)器,尤其在 debug 時使用起來非常直觀,可以根據(jù)面對不同的處理對象,可選擇更易于理解的可視化方式。比如圖表可視化,Plotly 可視化,Tree 可視化,網(wǎng)格可視化,文本可視化等等。在其種類非常豐富的同時,操作性也較為簡便,效果非常直觀,小編選取了幾種類型作為案例:

Plotly 可視化

AST 可視化 在使用 AST 可視化還會呈現(xiàn)源代碼,在選擇其節(jié)點時,還會突出顯示源代碼中的跨度。 Python 怎么解? 我們讀者最常用的就是 Python 語言,然而遺憾的是,Debug Visualizer 并不支持 Python 數(shù)據(jù)結(jié)構的自動可視化。不過,Python 開發(fā)者還是非常熱情的,他們嘗試手動添加自定義可視化功能。

項目維護者正在討論添加對 Python 的支持。 那么如果要手動調(diào)用 Debug Visualizer,開發(fā)者在 Demo 中新提交了一個 Python 示例。我們需要以 JSON 格式來表示數(shù)據(jù),并完成自定義可視化,注意該 JSON 需要滿足 Debug Visualizer 的格式定義。

如果在循環(huán)語句中設置斷點,那么就可以導入 json_graph 來可視化結(jié)果,如下所示為 10 個節(jié)點的可視化展示。

在 Reddit 社區(qū)上,也有很多開發(fā)者在討論 Python 是不是能用,有沒有更便捷的方式自動可視化 DeBug,而不是在 DeBug 前還需要手動先配置一番。

VS Code Debug Visualizer 確實非??幔С?Python 的它會更有意思?,F(xiàn)在不論是項目維護者還是其它開發(fā)者,都在關注這個問題,期待過一段時間它能完美支持 Python。

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

    關注

    30

    文章

    4779

    瀏覽量

    68521
  • 數(shù)據(jù)結(jié)構

    關注

    3

    文章

    573

    瀏覽量

    40123
  • DEBUG
    +關注

    關注

    3

    文章

    93

    瀏覽量

    19907

原文標題:代碼調(diào)試神器:VS Code 開源新工具!

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Zephyr領進門系列:MCUXPresso for VS Code插件安裝

    在上一期-Zephyr的構建工具,我們?yōu)榇蠹医榻B了一位新朋友,Zephyr OS。相信通過上一篇的介紹,大家已經(jīng)對這一OS有了一些簡單的了解。那么本期小編將帶著大家一起從0開始結(jié)合VS Code搭建
    的頭像 發(fā)表于 12-19 09:53 ?505次閱讀
    Zephyr領進門系列:MCUXPresso for <b class='flag-5'>VS</b> <b class='flag-5'>Code</b>插件安裝

    單片機Debug與仿真區(qū)別

    單片機的開發(fā)是一復雜的過程,涉及到硬件設計、軟件開發(fā)和測試等多個環(huán)節(jié)。為了確保單片機能夠按照預期工作,開發(fā)者需要使用Debug和仿真技術來檢測和修正代碼中的錯誤。 Debug(調(diào)試) Deb
    的頭像 發(fā)表于 12-19 09:47 ?90次閱讀

    IAR升級VS Code調(diào)試擴展,引入Listwindow技術

    IAR近日宣布對VS Code中的調(diào)試擴展IAR C-SPY調(diào)試器進行了重要升級。此次升級的核心亮點在于引入了IAR獨有的Listwindow技術,為嵌入式設備調(diào)試設立了新的標桿
    的頭像 發(fā)表于 12-11 11:15 ?210次閱讀

    ?IAR C-SPY為VS Code社區(qū)樹立調(diào)試新標準

    全球領先的嵌入式系統(tǒng)開發(fā)軟件解決方案供應商IAR宣布,對VS Code中的調(diào)試擴展IAR C-SPY調(diào)試器進行了重大升級。此次升級引入了IAR的Listwindow技術,進一步提升了調(diào)試能力,使IAR C-SPY調(diào)試器在VS
    的頭像 發(fā)表于 12-06 10:27 ?154次閱讀

    AD完原理后如何導入PCB

    在Altium Designer(簡稱AD)中,將完的原理導入到PCB(Printed Circuit Board,印制電路板)是一關鍵的設計步驟。以下是導入過程: 一、準備階段 確保原理
    的頭像 發(fā)表于 09-02 16:32 ?7027次閱讀

    Microchip發(fā)布面向VS Code的MPLAB擴展早期體驗版本

    為充分利用Microsoft Visual Studio Code (VS Code) 的多功能性,Microchip Technology(微芯科技公司)發(fā)布面向VS
    的頭像 發(fā)表于 08-28 10:01 ?586次閱讀

    INA280-Q1 Vs由一基準電壓芯片來供電,那么Vs端的電流是多大?

    在數(shù)據(jù)手冊上,power supply只看到了靜態(tài)輸出電流,那么在當Vs由一基準電壓芯片來供電,那么Vs端的電流是多大?
    發(fā)表于 08-06 08:24

    赫茲時域光譜系統(tǒng)

    1. 赫茲時域光譜測量結(jié)構圖 赫茲時域光譜通過測量亞太赫茲至幾十赫茲頻率范圍內(nèi)的復數(shù)響應表征材料性質(zhì)。在此頻段內(nèi),通??梢杂^察到各種各樣的諧振現(xiàn)象,例如固體材料中的電子以及聲子
    的頭像 發(fā)表于 05-24 06:33 ?488次閱讀
    <b class='flag-5'>太</b>赫茲時域光譜系統(tǒng)

    芯海 32 位 MCU 開發(fā)調(diào)試 ,基于 VS Code 插件實現(xiàn)芯海 32 位 MCU 開發(fā)調(diào)試

    編譯器命令行參數(shù)、GCC 鏈 接腳本、JLink 配置等,而且在推廣和移植時也會遇到比較多的問題。因此我們開發(fā)了基于 VS Code 的插件,目的是統(tǒng)一開發(fā)工具、簡化用戶操作、提高開發(fā)效率,不需要學習
    發(fā)表于 05-16 10:46

    請問VS1053的GBUF引腳可以懸空嗎?

    原子哥的VS1053模塊中的GBUF引腳是接了電阻之后直接連到GND上了,而datasheet上卻說不允許連接到地線上,為什么結(jié)果VS1053模塊還是可以正常工作的? 那如果我GBUF引腳什么都不接,直接
    發(fā)表于 04-23 07:43

    VS CodeVS Codium之間的區(qū)別有哪些?你選哪個?

    VS Codium 是一 VS Code 的克隆版本,百分之百免費且開源。
    的頭像 發(fā)表于 02-23 15:28 ?1732次閱讀
    <b class='flag-5'>VS</b> <b class='flag-5'>Code</b>和<b class='flag-5'>VS</b> Codium之間的區(qū)別有哪些?你選哪個?

    Simplicity Studio 5擴增功能支持以VS Code開發(fā)

    隨著SimplicityStudio 5 (SSv5) 5.6.0.0版本的發(fā)布,SiliconLabs(亦稱“芯科科技”)已經(jīng)引入了針對Visual Studio CodeVS Code)作為
    的頭像 發(fā)表于 01-29 10:34 ?954次閱讀
    Simplicity Studio 5擴增功能支持以<b class='flag-5'>VS</b> <b class='flag-5'>Code</b>開發(fā)

    詳解Java DEBUG的基本原理

    Debug 的時候,都遇到過手速太快,直接跳過了自己想調(diào)試的方法、代碼的時候吧……
    的頭像 發(fā)表于 01-05 10:10 ?1362次閱讀
    詳解Java <b class='flag-5'>DEBUG</b>的基本原理

    proteus可以導入ad的電路

    Proteus軟件是一款用于電子電路仿真和PCB設計的工具,它提供了廣泛的元器件庫和仿真功能。然而,Proteus軟件本身不支持直接導入AD(Altium Designer)軟件的電路
    的頭像 發(fā)表于 01-04 11:02 ?9555次閱讀

    kiCAD原理怎么

    。kiCAD可以在官方網(wǎng)站上免費下載,并安裝到您的計算機上。一旦安裝完成,您將能夠打開軟件并開始創(chuàng)建您的原理項目。 一旦軟件啟動,您將看到kiCAD的主界面。在這里,我們將首先創(chuàng)建一新的工程。選擇"文件"菜單中的"新建",然后選擇"項目"選項。您將
    的頭像 發(fā)表于 01-02 13:57 ?1302次閱讀
    RM新时代网站-首页