开发工具数据可视化【免费下载链接】vscode-debug-visualizerAn extension for VS Code that visualizes data during debugging.项目地址https://gitcode.com/gh_mirrors/vs/vscode-debug-visualizer点击查看免费下载本篇文章以 Debug Visualizer 扩展位于extension/目录官方变更日志 extension/CHANGELOG.md 为骨架逐版本梳理该扩展从 0.9.0 初版到 2.6.0 的功能演进可视化视图与命令、数据提取器、调试适配器支持、远程开发适配、自定义脚本注入等关键能力并结合extension/src源码验证每项能力的真实实现与配置方式。读完本文你将完整掌握该扩展的配置项语义、命令快捷键、多语言支持边界以及数据提取器 可视化框架这一核心架构的形成过程。版本演进总览从 0.9.0 到 2.6.0扩展经历了三个明显阶段基础能力搭建期0.x、稳定与体验优化期1.x、数据提取器与自定义能力爆发期2.x。各版本核心变化如下表版本核心变化0.9.0初始发布0.11.0多行表达式输入、Helper Bundle 注入、Plotly 可视化、对象图与 Plotly 数据提取器0.12.0通用调试适配器支持PHP/Java/C#、暗色主题、Grid 可视化0.13.0新增debugVisualizer.debugAdapterConfigurations配置0.14.0新增命令 Use Selection as ExpressionShiftF1、代码分包优化加载1.0.0基于类型的自动补全、License 改为 GPL-3.0、可视化错误捕获1.1.0pwa-chrome适配器、repl 求值上下文、远程开发支持2.0.0新版 JS 调试适配器、可视化框架独立、全新设计与 Logo2.2.0新增debugVisualizer.js.customScriptPaths自定义数据提取器脚本2.4.0Ruby 支持、新增debugVisualizer.customVisualizerScriptPaths、内置 JS 数据提取器2.6.0改进 JS 数据提取器、使用活动栈帧求值基础能力搭建期0.x可视化、数据提取器与通用调试适配器0.9.0–0.11.0初版核心架构成型0.9.0 为初始发布随后的 0.11.0 确立了扩展的两大核心能力支柱多行表达式输入Multiline Expression Input可视化视图中的表达式输入框支持多行书写。README 中明确了快捷键约定——shiftenter换行、ctrlenter求值单行时enter直接提交表达式。这与 webview 组件 ExpressionInput.tsx 的实现相对应。Plotly 可视化器与 Plotly 数据提取器新增基于 Plotly 的图表可视化和对应的数据提取器。数据提取器实现位于>debugVisualizer.debugAdapterConfigurations: { lldb: { expressionTemplate: script to_json(\${expr}\), context: repl } }参数语义expressionTemplate发送给调试器的最终表达式模板${expr}会被替换为当前可视化表达式。例如 Swift/Lua 等语言的调试器需要先把表达式包进脚本调用才能得到 JSON。context求值上下文取值为watch或repl。配置的解析与渲染实现在 extension/src/Config.ts 的getDebugAdapterConfig与evaluateTemplate中expressionTemplate默认为${expr}context默认为watch渲染时按key - ${key}做字符串替换。该配置通过ConfigurableVisualizationSupportextension/src/VisualizationBackend/ConfigurableVisualizationSupport.ts接入后端分发链且会覆盖对应调试适配器类型的内置支持。0.14.0命令体系完善与加载优化新增命令Debug Visualizer: Use Selection as Expression快捷键ShiftF1。命令实现见 extension/src/extension.ts优先取编辑器选区文本若选区为空则尝试匹配当前行内反引号包裹的内容如模板字符串中的子表达式随后将表达式写入最近打开的视图latestConnection.setExpression(selectedText)若尚无视图则新建一个并携带该表达式this.views.createNew(selectedText)。命令 Open a new Debug Visualizer View 更名为Debug Visualizer: New View内部 id 为vscode-debug-visualizer.new-visualizer。表达式输入框在失去焦点时自动提交表达式输入框模式固定为纯文本text而非 TypeScript因为扩展需支持多种语言。通过将代码拆分为多个 bundle 优化加载时间并修复了 Monaco 编辑器加载错误。1.x 稳定期求值可靠性、远程开发与类型自动补全1.0.0错误处理与交互强化Use Selection as Expression 在无视图时自动新建视图前述createNew(selectedText)行为。类型驱动的自动补全当调试 JavaScript/TypeScript 时表达式输入框基于类型提供自动补全。补全由VisualizationWatchModelImpl.getCompletionsextension/src/VisualizationWatchModel/VisualizationWatchModelImpl.ts转发给后端实现。License 从 MIT 变更为 GPL-3.0这一变更在 extension/package.json 与 extension/LICENSE.md 中固化。捕获可视化错误而非让整个 webview 崩溃求值/解析/渲染过程中的错误被转化为格式化错误消息FormattedMessage展示在视图内。1.1.0调试会话时序、pwa-chrome 与远程开发修复调试会话启动后才打开可视化视图的 bug此前若在调试会话开始后再打开视图可能取不到数据1.1.0 修复了该时序问题。修复 VS Code 对同一会话多次触发调试追踪导致的 bug。支持新版pwa-chrome调试适配器。默认使用repl求值上下文避免响应被截断。这一默认值在 GenericVisualizationSupport.ts 的getContext()中有明确注释// we will use repl as default so that results are not truncated.改进求值/解析失败时的错误信息。设置webview.retainContextWhenHidden为 true已打开过的可视化视图会保留上下文重新显示时加载更快。配置webview.portMapping使扩展在**远程开发Remote Development**场景下可用。2.x 爆发期数据提取器体系、自定义脚本与活动栈帧2.0.0新版 JS 调试适配器与可视化框架独立支持新版 JS 调试适配器pwa-node等详见下文源码证据。可视化层独立为github.com/hediet/visualization框架扩展自身专注于求值 数据提取实际渲染交给通用可视化框架扩展通过其公开的 JSON 数据契约可视化数据 schema驱动渲染。这是架构上的重要分水岭——从此数据提取data-extraction 包 可视化渲染visualization 框架 调试集成extension 本体三层解耦。新增/改进可视化器、改进设计并强化暗色主题更换新 Logo见 extension/docs/logo.drawio.png。2.0.6提取器修复与 Table 提取器修复 Grid 提取器、Perspective.js、AST 可视化器的 bug。新增 Table 数据提取器data-extraction/src/js/api/default-extractors/TableExtractor.ts。改进 TypeScript 数据提取器。2.1.0文本 Diff 与更多 JS 调试适配器新增文本 diff 与文本装饰查看器text diff and text decoration viewer文本型可视化从单一 text 视图扩展为差异对比与装饰高亮能力对应数据提取器见>debugVisualizer.js.customScriptPaths: [ ${workspaceFolder}/custom-visualizer.js ]脚本契约路径必须为绝对路径可使用${workspaceFolder}变量模板渲染实现在 extension/src/Config.ts 的SimpleTemplate中${workspaceFolder}会替换为首个工作区文件夹的fsPath脚本必须把module.exports赋值为类型import(hediet/debug-visualizer-data-extraction).LoadDataExtractorsFn的函数。注入与热重载逻辑位于 extension/src/VisualizationBackend/JsVisualizationSupport.ts 的CustomScripts类它通过FileWatcher监视文件变化把脚本内容包进function (module) { ... }求值得到module.exports后调用setDataExtractorFn(path, fn)注册文件不存在或执行出错时通过showErrorMessage提示用户。README 给出了一个把Map转成 Table 可视化的完整示例脚本demos/js/custom-visualizer.js 为可运行样例。2.3.0Python 支持改进改进对 Python 调试器的支持对应后端为PyEvaluationEngineextension/src/VisualizationBackend/PyVisualizationSupport.ts。2.4.0Ruby 支持与自定义可视化器脚本Ruby 支持新增RbEvaluationEngineextension/src/VisualizationBackend/RbVisualizationSupport.ts配合rdbg调试适配器演示见 demos/ruby。新增配置debugVisualizer.customVisualizerScriptPaths与 2.2.0 的customScriptPaths不同该配置注入的是**可视化器webview 侧**而非被调试进程脚本须把module.exports赋值为类型import(hediet/visualization-core).RegisterVisualizerFn的函数用于注册自定义可视化器。注入在 extension/src/webview/WebviewConnection.ts 的FileWatcher中完成。新增内置 JS 数据提取器JS data extractors。2.6.0活动栈帧求值与提取器改进2.6.0 有两个重要改进改进 JS 数据提取器Improved JS data extractors。使用活动栈帧active stack frame而非最顶层栈帧求值这是对多线程/异步场景的准确性修复。此前求值固定在最顶层栈帧可能求值到错误的上下文现在改为跟踪用户当前选中的栈帧。从源码看活动栈帧的获取是一个巧妙但略显hacky的实现extension/src/proxies/DebuggerViewProxy.ts源码注释直言This is currently all faked. A proper API would be nice.扩展注册了一个InlineValuesProviderFrameIdGetterVS Code 在渲染内联值时会把当前活动栈帧的context.frameId写入调试会话代理对象的_activeStackFrameId属性此后各后端通过debuggerView.getActiveStackFrameId(session)读取该 ID 作为evaluate请求的frameId。JS 后端在 JsVisualizationSupport.ts 中据此获取帧 ID并额外拉取该帧的栈跟踪与变量名列表用于构造提取器所需的求值闭包。配置项全景截至 2.6.0结合 extension/package.json 的contributes.configuration与 extension/src/Config.ts扩展当前共有四个配置项配置项类型默认值作用与注入目标debugVisualizer.useChromeKioskModebooleantrue是否用 Chrome Kiosk 模式弹出可视化视图Chrome 不可用时回退默认浏览器WebviewConnection.ts 的openInBrowserdebugVisualizer.debugAdapterConfigurationsobject{}按调试适配器类型定制expressionTemplate与context覆盖内置支持debugVisualizer.js.customScriptPathsstring[][]注入被调试进程的自定义数据提取器脚本支持${workspaceFolder}改动自动重载debugVisualizer.customVisualizerScriptPathsstring[][]注入 webview 侧的自定义可视化器注册脚本支持${workspaceFolder}对应的读取实现均封装在Config类中customScriptPaths与customVisualizerScriptPaths会通过SimpleTemplate渲染${workspaceFolder}变量VsCodeSettingextension/src/utils/VsCodeSettings.ts统一封装了配置的读取、序列化与变更订阅配置值经 mobx 计算属性监听变更时触发视图刷新。命令与快捷键扩展贡献的命令定义在 extension/package.jsonvscode-debug-visualizer.new-visualizer→ 标题 Debug Visualizer: New View打开一个新的可视化视图。vscode-debug-visualizer.visualizer-set-expression→ 标题 Debug Visualizer: Use Selection as Expression默认键绑定ShiftF1when: editorTextFocus将编辑器选区或反引号包裹的表达式作为可视化表达式。从变更日志看架构演进脉络CHANGELOG 不仅记录变更也勾勒出清晰的架构演进路径0.x从单一 JS 调试器到通用 DAP。0.12.0 的通用调试适配器支持奠定了任何能evaluate出 JSON 字符串的调试器都能可视化的基础0.12.1 的双重 JSON 解析则是对 C/C/C# 转义差异的现实妥协。1.x可靠性与体验。repl 上下文、错误信息格式化、retainContextWhenHidden、portMapping远程开发支持属于让既有能力在各种环境下稳定可用。2.x三层架构定型。2.0.0 将渲染层独立为 visualization 框架2.2.0 与 2.4.0 分别开放了数据提取器与可视化器两个扩展点对应customScriptPaths与customVisualizerScriptPaths使扩展从开箱即用的工具变成可编程的可视化调试平台2.6.0 的活动栈帧求值则是对调试语义准确性的最后补全。截至 2.6.0扩展官方验证支持的语言包括JavaScript/TypeScriptnode/node2/extensionHost/chrome/pwa-chrome/pwa-node等全量支持见 JsVisualizationSupport.ts 中维护的适配器清单、Dart、Go、Python、C#、PHP、Java、C、Swift、Rust、Ruby基础支持仅 JSON 字符串可视化。各语言可运行演示位于 demos 目录数据提取器 API 与实现位于>赞分享开发工具数据可视化【免费下载链接】vscode-debug-visualizerAn extension for VS Code that visualizes data during debugging.项目地址https://gitcode.com/gh_mirrors/vs/vscode-debug-visualizer点击查看免费下载相关推荐Focalboard 版本演进全解析从 v0.6 到 v0.15 的核心功能与实现原理Focalboard 版本演进全解析从 v0.6 到 v0.15 的核心功能与实现原理 Focalboard 是一个开源、可自托管的项目管理工具定位为 Tr后端前端企业应用桌面应用协同办公Joplin 桌面端版本演进全解析从 v0.10 到 v3.7 的核心功能与实现原理Joplin 桌面端版本演进全解析从 v0.10 到 v3.7 的核心功能与实现原理 本篇技术指南以 Joplin 桌面端官方 Changelog read知识管理跨平台插件系统vscode-debug-visualizer扩展架构演进从1.0到最新版的设计变化vscode debug visualizer扩展架构演进从1.0到最新版的设计变化 引言调试可视化的架构挑战 你是否曾在调试复杂数据结构时因无法直观感知开发工具数据可视化上一篇DeepEval TypeScript SDK 实战指南用 Vitest 风格测试为 LLM 应用构建端到端评估下一篇Zola 版本演进全解析从 0.23 重大变更到历史功能脉络的升级指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
高精度频率计模块完整设计:等精度测量、FPGA实现到实测校准 做自动化测试夹具的时候,被一个“测频率慢又不准”的问题折腾得非常头疼。后来自己设计了一块频率计模块,从最初的原理图,到PCB打样、焊接、固化逻辑,再到校准和实测,整个流程走下来,收获非常大。这篇帖子就… · 2026/9/26 10:35:07
MikroORM 与 Jest 集成实战:fake timers 与 process.nextTick 冲突的完整解决方案 后端 【免费下载链接】mikro-orm TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases. 项目地址: https://gitcode.com/gh_mir… · 2026/9/26 10:35:07
论文查重与AI检测双重挑战:本科生写作的实用避坑指南 AI 检测新规落地之后,本科生的论文写作环境发生了挺大的变化。以前大家关心的核心问题只有一个——查重率能不能降到学校要求的标准线以下;现在变成了双重考核:查重率要过关,AI 疑似率也要过关。我观察到不少同学在写初稿的时候用… · 2026/9/26 10:35:07
SST固态变压器技术漫谈【5】采样、驱动与保护系统设计 模块五 采样、驱动与保护系统完整设计 摘要:本章围绕 10 kV / 1 MVA 固态变压器(SST)的采样、驱动与保护三大子系统展开完整设计。采样体系覆盖 16 类关键信号,强调多通道同步采样(偏差 ≤1 μs)与五层抗干扰设计;驱动电路聚焦 SiC/IGBT 的防误导通、驱动电阻匹配与串扰… · 2026/9/26 11:10:59
SST固态变压器技术漫谈【6】PCB、结构与绝缘散热专项设计要点 模块六 PCB、结构与绝缘散热专项设计 摘要:本模块围绕 SST(固态变压器)的工程化落地,系统讲解高压 PCB 布局、爬电与电气间隙、高频散热、高压绝缘工艺及结构工况适配五大专项。核心要点:① 功率回路最小化是第一优先级,用叠层母排把回路电感压到 100 nH 以内;② 高压与… · 2026/9/26 11:10:59
窗口管理程序 窗口管理程序(CKGL)
点此下载最新版本(蓝奏云盘)密码:CKGL 点此前往GitCode下载 点此前往GitHub下载
以下是v1.26.09.23部分界面截图 上方界面点击“更改样式”按钮可以进入下方界面 此程序由DEFCONG编写
点此下载最新版本(蓝奏云盘)密码:CKGL · 2026/9/26 11:10:59
Qt — 布局管理器 目录
1. 垂直布局
2. 水平布局
3. 网格布局
4. 表单布局(行为N,列固定为2)
5. Spacer 之前使⽤ Qt 在界⾯上创建的控件, 都是通过 "绝对定位 (手动)" 的⽅式来设定的. 也就是每个控件所在的位置, 都需要计算坐标, 最终通过 se… · 2026/9/26 11:10:59
第1章:开发环境搭建,安装乌班图系统 专栏导航
上一篇:第1章:开发环境搭建,安装 VMware 虚拟机
回到目录
下一篇:第1章:了解乌班图环境,命令行中的提示文字 本节前言
对于本节所讲解的知识,有可能,你会需要时不时地参… · 2026/9/26 11:10:59
【STM32开源项目】智能家用垃圾桶 目录
一、项目概述
二、实现功能
1、功能详解:
2、项目清单:
3、演示视频:
三、硬件介绍
PCB硬件设计:
四、程序设计
五、项目成品效果图
六、项目总结
七、包含资料 一、项目概述
本项目基于STM32F103C8T6单片机&… · 2026/9/26 11:10:53
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46