Я работаю над расширением отладчика. У меня есть это, где он загружается и будет вызывать valuRequest (), когда что-то напечатано в консоли отладки. Однако pauseRequest () не вызывается, когда я нажимаю кнопку паузы.
class Session extends DebugSession {
constructor() {
super();
this.setDebuggerLinesStartAt1(false);
this.setDebuggerColumnsStartAt1(false);
}
initializeRequest(resp, args) {
resp.body.supportsDataBreakpoints = false;
resp.body.supportsBreakpointLocationsRequest = false;
this.sendResponse(resp);
}
launchRequest(resp, args) {
console.log('launchRequest');
this.sendResponse(resp);
}
pauseRequest(resp, args) {
console.log('pauseRequest');
this.sendResponse(resp);
}
evaluateRequest(resp, args, req) {
const text = req.arguments.expression;
console.log(`evaluateRequest ${text}`);
this.sendResponse(resp);
}
}
class InlineDebugAdapterFactory {
createDebugAdapterDescriptor(_session) {
return new vscode.DebugAdapterInlineImplementation(new Session());
}
}
module.exports.activate = (ctx) => {
const factory = new InlineDebugAdapterFactory();
ctx.subscriptions.push(vscode.debug.registerDebugAdapterDescriptorFactory('my-debugger', factory));
ctx.subscriptions.push(factory);
}
Я не знаю, как выяснить, почему pauseRequest не вызывается. Есть ли способ прерывания VSCode при нажатии кнопки паузы, чтобы я мог пройти по ней?
Редактировать: Очевидно, кнопка паузы не работает, пока не узнает о вызываемых потоках из threadsRequest (). Единственный способ заставить меня это сделать - отправить StoppedEvent.
Нет ли способа запустить отладчик в рабочем состоянии?