牛逼!实时可视化 Debug:VS Code 开源新工具,一键解析代码结构

点击上方“菜鸟学Python”,选“星标”公众号

重磅干货,第一时间领取

来自机器之心

有没有一种更优雅的 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\nmore 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。

项目地址:https://github.com/hediet/vscode-debug-visualizer

参考链接:https://www.reddit.com/r/programming/comments/f88zom/i_made_an_extension_for_visual_debugging_in_vs/

爆款文案

每个程序员都是从菜鸟开始成长起来的,没有人生下来就是程序员高手。菜鸟编程大本营,专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手。

菜鸟编程本营,从菜鸟进阶高手
点这里,获取新手福利
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Visual C++ 是一种功能强大的集成开发环境(IDE),它能够进行基于 C++ 的软件开发,并且提供了丰富的库和工具来辅助开发过程。Visual C++ 的强大之处在于它能够让开发人员编写出高效、可靠、具有用户友好界面的应用程序。 Visual C++ 的代码可以被称为“代码”,主要有以下几个原因: 1. 高性能:Visual C++ 使用了高效的编译器和优化技术,能够生成高度优化的机器代码,从而提升程序的性能。这使得 Visual C++ 在开发需要处理大量数据或需要较高计算能力的应用中表现出色。 2. 强大的库支持:Visual C++ 提供了丰富的类库和函数库,包括标准库、MFC(Microsoft Foundation Classes)、ATL(Active Template Library)等,这些库能够提供各种功能的封装,让开发人员能够快速构建复杂的应用程序。同时,还有支持多线程、网络、数据库、图形界面等的库,能够满足各种开发需求。 3. 可扩展性:Visual C++ 允许开发人员使用其他语言扩展其功能,比如使用C#、VB.NET等编写.NET代码,使用Python扩展等。这种可扩展性使得 Visual C++ 不仅适用于传统的桌面应用程序的开发,还能用于开发Web应用、移动应用以及其他各种领域。 4. 可视化开发:Visual C++ 提供了可视化的设计器和开发工具,使得开发人员能够通过拖拽、放置、属性设置等方式快速构建界面,并用代码与界面进行交互。这样的可视化开发方式不仅提高了开发效率,还能够让开发人员更直观地了解和调整应用程序的界面结构。 综上所述,Visual C++ 的代码体现在它的高性能、强大的库支持、可扩展性和可视化开发等方面,使得开发人员能够更高效、更快速地构建出功能强大且用户友好的应用程序。 ### 回答2: "Visual C" 是微软公司开发的一种集成开发环境(IDE)和编程语言(C#或C++)的产品。它提供了丰富的工具和库,可用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序等。 "Visual C"的优秀之处体现在以下几个方面: 1. 强大的功能和工具:"Visual C"拥有大量的工具和功能,如代码编辑器、调试器、图形化界面设计工具等,使开发人员能够更轻松地创建和调试代码。这些工具可以大大提高开发效率,加快应用程序的开发和部署速度。 2. 丰富的库和组件:"Visual C"提供了大量的库和组件,开发人员可以直接使用这些库来实现各种功能,如图形界面、数据库连接、网络通信等。这样,开发人员可以更快速地开发出功能完善、可靠性高的应用程序。 3. 跨平台支持:"Visual C"不仅适用于Windows平台开发,还可以用于跨平台开发。例如,使用"Visual C"可以开发出在Windows、Android和iOS等平台上运行的应用程序。这种跨平台支持使得开发人员能够更便捷地开发和部署多平台应用。 4. 社区和支持:"Visual C"作为微软公司的产品,拥有庞大的开发者社区和技术支持体系。开发人员可以通过社区和官方网站获取各种学习资源、教程、文档等,解决开发过程中遇到的问题和困惑,以及与其他开发人员交流经验和分享成果。 综上所述,"Visual C"凭借其强大的功能、丰富的库和组件、跨平台支持以及庞大的开发者社区,成为了许多开发人员的首选工具。它极大地简化了开发过程、提高了开发效率,是一款代码开发工具
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值