Расширение отладки pauseRequest не вызвано - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю над расширением отладчика. У меня есть это, где он загружается и будет вызывать 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.

Нет ли способа запустить отладчик в рабочем состоянии?

1 Ответ

0 голосов
/ 22 апреля 2020

Это похоже на взлом, но это работает. В launchRequest () отправьте остановленное событие без указания номера потока. Это заставит его вызывать threadsRequest (), и кнопка паузы начнет работать.

...