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

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

3天内不再提示

DeBug太枯燥?让VS Code画个图

lviY_AI_shequ 来源:机器之心 2020-05-12 09:19 次阅读

DeBug 太枯燥?让 VS Code 画个图,自动帮你理清数据结构与代码思路,这就是 Reddit 2K 多点赞的开源新工具。

项目地址:https://github.com/hediet/vscode-debug-visualizer 写代码,难免会遇到各种神奇的问题,代码短我们在脑海中「运行」一遍也就差不多能找出原因。但代码要是比较长,错误就会隐藏比较深了,这个时候,不论你是采用 print() 大法,还是善用 assert 语句,或者干脆设置断点,DeBug 总是一条慢慢排除的道路。 那么,能不能有一种更优雅的 DeBug 方式,以更简洁的信息快速帮我们找到代码的问题所在? 有的,VS Code 最新推出的可视化 DeBug,便能以图的方式快速展示数据结构。 我们先看看效果,如下动图将断点设置为第 32 行定义双向链表,随后一行行运行代码就会在右图展现出对应的数据结构图。

这种可视化非常优雅,而且该工具也会根据数据结构以不同的方式展现,例如树形、表格、曲线和图等。如下动图展示几种不同的可视化方式:

效果上确实非常惊艳,它与之前的 DeBug 方式采用完全不同的展现形式。目前该 VS Code Debug Visualizer 在 JavaScript/TypeScript 上有比较好的效果,在 C#、Java 和 PHP 上也正在积极测试,其它语言也还都能用。 正确的使用姿势 安装此扩展程序后,使用命令< Open a new Debug Visualizer View >打开新的可视化视图。在此视图里,设置断点逐步执行后,表达式的执行与动态可视化都会展示在里面。右上角的刷新键可将当前的可视化工具视图弹出到新的浏览器窗口,同时还可以通过展开详细信息的窗口去选择数据提取器以及可视化调试器。 可视化调试器使用的是特定的 JSON 数据,相关支持的 JSON 数据模式可参考原 GitHub 项目。 当前的可视化表达式应该是作为 JSON 对象字符串来进行运算的,并与所支持的可视化调节器相匹配。而这个 JSON 字符串可能被单引号或者双引号所包含(也有可能没有引号),因此不能忽略转义符。 举一个案例:

"{ "kind": { "text": true }, "text": "some text more text" }". 对于 TypeScript/JavaScript 等语言,因为已经集成了数据抽取器,因此可以直接自动可视化。而其它没有数据抽取器的语言,就需要自定义数据结构与可视化器之间的关系了 多种可视化器皆可定制 该扩展还内置了其他可自定义的可视化调节器,尤其在 debug 时使用起来非常直观,可以根据面对不同的处理对象,可选择更易于理解的可视化方式。比如图表可视化,Plotly 可视化,Tree 可视化,网格可视化,文本可视化等等。在其种类非常丰富的同时,操作性也较为简便,效果非常直观,小编选取了几种类型作为案例:

Plotly 可视化

AST 可视化 在使用 AST 可视化还会呈现源代码,在选择其节点时,还会突出显示源代码中的跨度。 Python 怎么解? 我们读者最常用的就是 Python 语言,然而遗憾的是,Debug Visualizer 并不支持 Python 数据结构的自动可视化。不过,Python 开发者还是非常热情的,他们尝试手动添加自定义可视化功能。

项目维护者正在讨论添加对 Python 的支持。 那么如果要手动调用 Debug Visualizer,开发者在 Demo 中新提交了一个 Python 示例。我们需要以 JSON 格式来表示数据,并完成自定义可视化,注意该 JSON 需要满足 Debug Visualizer 的格式定义。

如果在循环语句中设置断点,那么就可以导入 json_graph 来可视化结果,如下所示为 10 个节点的可视化展示。

在 Reddit 社区上,也有很多开发者在讨论 Python 是不是能用,有没有更便捷的方式自动可视化 DeBug,而不是在 DeBug 前还需要手动先配置一番。

VS Code Debug Visualizer 确实非常酷,但支持 Python 的它会更有意思。现在不论是项目维护者还是其它开发者,都在关注这个问题,期待过一段时间它能完美支持 Python。

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

    关注

    30

    文章

    4556

    浏览量

    66772
  • 数据结构
    +关注

    关注

    3

    文章

    564

    浏览量

    39900
  • DEBUG
    +关注

    关注

    3

    文章

    83

    浏览量

    19447

原文标题:代码调试神器:VS Code 开源新工具!

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    VS CodeVS Codium之间的区别有哪些?你选哪个?

    VS Codium 是一个 VS Code 的克隆版本,百分之百免费且开源。
    的头像 发表于 02-23 15:28 401次阅读
    <b class='flag-5'>VS</b> <b class='flag-5'>Code</b>和<b class='flag-5'>VS</b> Codium之间的区别有哪些?你选哪个?

    Simplicity Studio 5扩增功能支持以VS Code开发

    随着SimplicityStudio 5 (SSv5) 5.6.0.0版本的发布,SiliconLabs(亦称“芯科科技”)已经引入了针对Visual Studio CodeVS Code)作为
    的头像 发表于 01-29 10:34 276次阅读
    Simplicity Studio 5扩增功能支持以<b class='flag-5'>VS</b> <b class='flag-5'>Code</b>开发

    如何设置VS代码配置来调试嵌入式处理器

    如果您开始使用Visual Studio CodeVS Code)开发嵌入式软件,马上需要回答的一个问题是:“如何调试我的代码?”在微控制器(MCU)供应商提供的使用Eclipse的IDE中,调试
    的头像 发表于 12-05 11:08 546次阅读
    如何设置<b class='flag-5'>VS</b>代码配置来调试嵌入式处理器

    codeblocks相比vs有什么优势

    Code::Blocks和Visual Studio(VS)都是流行的集成开发环境(IDE),用于编写和调试各种编程语言的应用程序。虽然它们在很多方面相似,但它们也有一些区别,每个工具都有其各自
    的头像 发表于 11-26 09:52 1332次阅读

    MCUXpresso for VS Code保姆式教程免费送!

    背景 NXP 在 2023 年 7 月 31 日正式发布了 MCUXpresso for VS Code  插件,使得广大的 VS Code 用户可以在熟悉的代码编辑环境中,快速开发基
    的头像 发表于 11-16 08:55 532次阅读
    MCUXpresso for <b class='flag-5'>VS</b> <b class='flag-5'>Code</b>保姆式教程免费送!

    在嵌入式中如何利用VS Code进行远程开发呢?

    VS Code几乎是所有的程序员必备的工具之一,据说全球一般的开发者都使用过VS Code这款工具。
    的头像 发表于 11-07 09:27 379次阅读
    在嵌入式中如何利用<b class='flag-5'>VS</b> <b class='flag-5'>Code</b>进行远程开发呢?

    【应用笔记】基于VS Code插件实现芯海32位MCU开发调试 不回修改为release 模式,求解答

    基于VS Code插件实现芯海32位MCU开发调试 不回修改为release 模式,求解答。 目前编译后,一直是debug 模式,如何修改
    发表于 10-31 10:43

    Python 最好用的8个VS Code扩展

    1. Python extension for Visual Studio Code 这个扩展是由微软官方提供的,支持但不仅限于以下功能: 通过Pylint或Flake8支持代码检查 在VS
    的头像 发表于 10-17 17:15 301次阅读
    Python 最好用的8个<b class='flag-5'>VS</b> <b class='flag-5'>Code</b>扩展

    8 个好用的VS Code Python 扩展

    今天为大家分享 8 个好用的 VS Code Python 扩展。 1. Python extension for Visual Studio Code 这个扩展是由微软官方提供的,支持但不
    的头像 发表于 10-16 11:11 305次阅读
    8 个好用的<b class='flag-5'>VS</b> <b class='flag-5'>Code</b> Python 扩展

    在Windows上使用VS Code编译RT-Thread工程的过程

    近期工作PC从Win转向了Mac,由于Mac平台还没有RT Studio IDE工具,日常开发不是太方便。在前期折腾的基础上,萌生了用VS Code+GCC在Mac上偶尔编程的想法。
    的头像 发表于 09-28 11:08 2542次阅读
    在Windows上使用<b class='flag-5'>VS</b> <b class='flag-5'>Code</b>编译RT-Thread工程的过程

    基于IAR for arm9.30.1在VS Code调试仿真RA

    基于IAR for arm9.30.1在VS Code调试仿真RA
    的头像 发表于 08-26 08:07 251次阅读
    基于IAR for arm9.30.1在<b class='flag-5'>VS</b> <b class='flag-5'>Code</b>调试仿真RA

    Visual Studio Code - 如何在Visual Studio CodeVS Code)中构建和调试RL78项目

    本视频演示如何在Visual Studio CodeVS Code)中构建和调试LLVM for Renesas RL78项目。 000 介绍051 构建024 调试 原文标题:Visual
    的头像 发表于 08-14 12:05 549次阅读

    新闻 | 瑞萨电子MCU和MPU产品线将支持Microsoft Visual Studio Code

    新闻快讯 全球半导体解决方案供应商瑞萨电子(TSE:6723)宣布其客户现可以使用Microsoft Visual Studio CodeVS Code)开发瑞萨全系列微控制器(MCU)和微处理器
    的头像 发表于 08-03 18:15 324次阅读
    新闻 | 瑞萨电子MCU和MPU产品线将支持Microsoft Visual Studio <b class='flag-5'>Code</b>

    VS Code 1.79发布

    想在 Markdown 文档中添加图片或视频?与其浪费时间先手动将文件复制到您的工作区,然后添加指向它的链接,现在你只需将文件拖放到或粘贴到你的 Markdown 中即可。如果该文件当前不是工作区的一部分,VS Code 会自动将该文件复制到你的工作区并插入指向它的链接:
    的头像 发表于 06-11 11:46 397次阅读
    <b class='flag-5'>VS</b> <b class='flag-5'>Code</b> 1.79发布

    IAR中 Debug 和 Release有何区别

      现在很多集成开发环境(IDE)在创建工程时都会自动生成有Debug 和 Release两个版本(工程目标),比如VS(VC)、IAR等。   有些小伙伴比较纳闷,Debug 和 Release
    的头像 发表于 05-22 10:54 968次阅读
    IAR中 <b class='flag-5'>Debug</b> 和 Release有何区别