如何获取VS Code调试数据,如断点,步骤,行代码

时间:2019-05-06 20:57:41

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

我正在从事一个学术软件可视化项目,旨在捕获调试会话并以图形方式显示。 为此,我试图创建一个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通用调试器UI )中捕获此调试数据,即不管使用哪种语言? VS Code的GitHub是否对此有任何未解决的问题?

1 个答案:

答案 0 :(得分:3)

解决方案称为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

查找“最终调试适配器跟踪器API”。它最初是为Live Share调试创建的。