【发布时间】:2018-10-21 14:02:46
【问题描述】:
我正在为 Visual Studio 代码编写一个扩展,我想在其中评估 javascript 调试会话的当前变量。这些变量通常在打开VARIABLES 部分下的调试窗格时显示。请参阅随附的屏幕截图。
我想在用户右键单击编辑器时访问这些变量,但我不知道如何。
我当前的扩展设置是这样的:在package.json 我已经注册了一个菜单贡献以及一个命令:
"contributes": {
"menus": {
"editor/context": [{
"command": "extension.showVariables",
"group": "navigation"
}]
}
}
在我的 extension.ts 中,我像这样注册命令:
export function activate(context: vscode.ExtensionContext) {
let disposable = vscode.commands.registerCommand('extension.showVariables', () => {
// TODO: let variables = vscode.debug.activeDebugSession.variables.toString();
vscode.window.showInformationMessage(variables);
});
}
我试图让它们通过vscode.debug.activeDebugSession,但这里没有用于变量的 API。我还尝试为vscode.debug.onDidReceiveDebugSessionCustomEvent 注册一个事件处理程序,但我不知道在哪里搜索调试变量。
甚至可以在 vs 扩展中访问这些变量还是我需要实现自己的调试器?
【问题讨论】:
-
我刚刚看到我可以向调试适配器发送
customRequest(评估)。但是要获取局部变量,我需要传递一个 frameId(或通过传递一个线程 id 来获取调用堆栈/帧)。如何获取调试器的线程id?
标签: visual-studio-code vscode-extensions vscode-debugger