Я реализовал отладчик lua, используя расширение vscode.Однако при отображении переменных я столкнулся с проблемой.
Переменные, отображаемые в точке останова, переключаются в соответствии с frameid стека.Когда я показываю переменные, мне нужно получить правильный frameid.
При первом переключении на определенный уровень стека я могу получить frameid стека через аргументы scopesRequest (), но когда я переключаюсь на другой стекуровень, система не выдаст мне уведомление при переключении обратно.потому что у аргументов variableRequest () нет текущего frameid, что приведет к тому, что отладчик использует неверный уровень стека и получит неверную переменную.
например.Стек:
Function1 luafile: строка 26 frameid = 0
Function2 luafile: строка 30 frameid = 1
Когда я переключаюсь на function2, scopesRequest () запрашивает у меня frameid= 1.Когда я переключаюсь обратно на функцию 1, я не могу получить уведомление о переключении стека.В настоящее время разверните UpValue, неверная переменная, считываемая отладчиком.
введите описание изображения здесь