【发布时间】:2019-02-21 22:49:21
【问题描述】:
我在尝试使用 debug api 或 vscode 时遇到问题。这是我正在使用的代码:
const vscode = require('vscode');
function activate(context) {
console.log('Congratulations, your extension "helloworld" is now active!');
let disposable = vscode.commands.registerCommand('extension.helloWorld', function () {
// Display a message box to the user
vscode.window.showInformationMessage('Hello World!'); // This works
const session = vscode.debug.activeDebugSession;
console.log(session); // returns undefined
// I have tried this one, and no text is shown
vscode.debug.activeDebugConsole.append("Hello from Debug Console");
if (session) {
session.customRequest("evaluate", {
"expression": "Math.sqrt(10)"
}).then(reply => {
vscode.window.showInformationMessage(`result: ${reply.result}`);
}, error => {
vscode.window.showInformationMessage(`error: ${error.message}`);
});
}
});
context.subscriptions.push(disposable);
}
exports.activate = activate;
function deactivate() {}
module.exports = {
activate,
deactivate
}
为了尝试这个,我做了以下步骤:
- 使用 yeoman 创建了简单的
"Hello World"扩展。 - 用上面的代码替换了
extension.js。 - 按 F5 启动(和调试)扩展程序。
- 在新窗口中打开了一个简单的node.js程序。
- 按F5调试简单程序。
- 按 F1 并输入“Hello”并运行“Hello World”扩展程序。
但是const session = vscode.debug.activeDebugSession; 返回undefined。
vscode.debug.activeDebugConsole.append("Hello from Debug Console"); 也没有显示任何内容。
我知道如果没有活动的调试会话,上面的代码将无法正常工作。所以:
我是否正确地有一个活动的调试会话?我在这里做错了什么?
【问题讨论】:
标签: javascript visual-studio-code vscode-extensions vscode-debugger