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

fv2wmkja  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(145)

我正在做一个学术软件可视化项目,目标是捕获调试会话并以图形方式显示。为此,我尝试创建一个Visual Studio代码扩展,在其中我可以获得与当前语言调试器交换的数据,如 * 添加断点、stepstinto、stepover、调试会话开始、调试文件、上下文变量、调试的行代码 *。也就是说,VS代码窗口中显示的相同数据:变量、手表、通话记录、加载的脚本和断点。
我尝试使用调试适配器(DAP -调试适配器协议)创建添加新调试器提供程序的扩展。但是,这会取消当前提供程序,并且不允许调试。https://code.visualstudio.com/api/extension-guides/debugger-extension
我还尝试使用VS Code API事件。通过这些事件,我设法控制了会话的开始和一些断点数据,尽管这些数据并不完整。https://code.visualstudio.com/api/references/vscode-api#debug
有人知道如何在VS代码范围(VS Code Generic Debugger UI)中捕获这些调试数据吗?也就是说,不管使用什么语言?在VS代码的GitHub中是否存在任何未解决的问题?

koaltpgm

koaltpgm1#

这个问题的解称为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调试而创建的。

相关问题