【问题标题】:How to get VS Code debug data like breakpoints, steps, line code如何获取 VS Code 调试数据,如断点、步骤、行代码
【发布时间】:2019-09-24 12:16:48
【问题描述】:

我正在从事一个学术软件可视化项目,该项目旨在捕获调试会话并以图形方式显示。 为此,我正在尝试创建一个 Visual Studio 代码扩展,我可以在其中获取与当前语言调试器交换的数据,例如添加断点、stepsinto、stepover、调试会话启动、调试文件、上下文变量、行代码已调试。也就是说,与 VS Code 窗口中显示的数据相同:VARIABLES、WATCH、CALL STACK、LOADED SCRIPTS 和 BREAKPOINTS。

我尝试使用调试适配器(DAP - 调试适配器协议)创建一个添加新 调试器提供程序 的扩展。但是,这会取消当前提供程序并且不允许调试。 https://code.visualstudio.com/api/extension-guides/debugger-extension

我也尝试过使用 VS Code API 事件。 通过这些事件,我设法控制了会话的开始和一些断点数据,但不完整。 https://code.visualstudio.com/api/references/vscode-api#debug

有谁知道如何在 VS Code 范围内(VS Code Generic Debugger UI)捕获这些调试数据,也就是说,不管使用什么语言? VS Code 的 GitHub 中是否有任何未解决的问题?

【问题讨论】:

  • 我怀疑这是可能的。自己写了一个调试适配器,相信vscode和适配器之间的通信纯粹局限于这2个组件,不能被任何其他代码部分截取或读取。
  • 您能否详细说明您希望如何可视化数据?

标签: typescript debugging visual-studio-code vscode-extensions


【解决方案1】:

解决方案称为DebugAdapterTracker

vscode.debug.registerDebugAdapterTrackerFactory('*', {
  createDebugAdapterTracker(session: DebugSession) {
    return {
      onWillReceiveMessage: m => console.log(`> ${JSON.stringify(m, undefined, 2)}`),
      onDidSendMessage: m => console.log(`< ${JSON.stringify(m, undefined, 2)}`)
    };
  }
});

https://code.visualstudio.com/updates/v1_30#_extension-authoring

查找“Finalized Debug Adapter Tracker API”。它最初是为 Live Share 调试而创建的。

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 2022-11-04
    • 2021-05-19
    • 2020-10-07
    • 2020-03-18
    • 2021-10-05
    • 1970-01-01
    • 2019-05-21
    • 2019-02-10
    相关资源
    最近更新 更多