我正在从事一个学术软件可视化项目,旨在捕获调试会话并以图形方式显示。 为此,我试图创建一个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是否对此有任何未解决的问题?
答案 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调试创建的。