В настоящее время я пытаюсь получить переменные текущего стекового кадра в расширении vscode. Все это происходит внутри vscode с адаптером c ++, предоставляемым microsoft .
. Текущий код выглядит следующим образом:
const session = vscode.debug.activeDebugSession;
if ( session ) {
await session.customRequest('threads').then(async (threads_response) => {
let main_thread = {};
for(let thread of threads_response.threads) {
if ( thread.name === 'Main Thread') {
main_thread = thread;
}
}
let stack_frame_format = {
parameters: true,
parameterTypes: true,
parameterNames: true,
parameterValues: true,
line: false,
module: false,
includeAll: false,
};
console.log("main-thread id: " + main_thread.id);
await session.customRequest('stackTrace', {
threadId: main_thread.id,
startFrame: 0,
levels: 0,
format: stack_frame_format}).then(async (stackTrace_response) => {
console.log(stackTrace_response.totalFrames);
console.log(stackTrace_response.stackFrames);
});
});
}
. но stackFrames - это пустой массив. В обычном отладчике (откуда я все это вызываю) я вижу все переменные, их типы и значения.
Мне кажется, что я использую протокол неправильно, но я не знаю, что мне нужно укажите, как получить эти стековые рамки для заполнения.