/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
v2.0.2
src/OneScript.DebugProtocol/IDebuggerService.cs
99 строк
4 KB
EvilBeaver
Вызов получения переменных модуля в зависимости от версии протокола
19 дек 2025, 12:55
19 дек 2025, 12:55
c6710c9
Код
Авторство
О чём код?
/*---------------------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v.2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; namespace OneScript.DebugProtocol { /// <summary> /// Сервис непосредственной работы с командами отладки, шагами, брейкпоинтами и пр. /// </summary> public interface IDebuggerService { /// <summary> /// Разрешает потоку виртуальной машины начать выполнение скрипта /// Все точки останова уже установлены, все настройки сделаны /// </summary> void Execute(int threadId); /// <summary> /// Добавление фильтров точек останова для исключений /// </summary> /// <param name="filters"></param> [Obsolete("Используется только для совместимости нового адаптера со старыми binary версиями движка")] void SetMachineExceptionBreakpoints((string Id, string Condition)[] filters); /// <summary> /// Добавление фильтров точек останова для исключений /// </summary> /// <param name="filters"></param> void SetExceptionBreakpoints(ExceptionBreakpointFilter[] filters); /// <summary> /// Установка точек остановки /// </summary> /// <param name="breaksToSet"></param> /// <returns>Возвращает установленные точки (те, которые смог установить)</returns> Breakpoint[] SetMachineBreakpoints(Breakpoint[] breaksToSet); /// <summary> /// Запрашивает состояние кадров стека вызовов /// </summary> StackFrame[] GetStackFrames(int threadId); /// <summary> /// Получает значения переменных /// </summary> /// <param name="frameIndex"></param> /// <param name="path"></param> /// <returns></returns> Variable[] GetVariables(int threadId, int frameIndex, int[] path); /// <summary> /// Получает переменные модуля для указанного фрейма /// </summary> /// <param name="threadId"></param> /// <param name="frameIndex"></param> /// <param name="path"></param> /// <returns></returns> Variable[] GetModuleVariables(int threadId, int frameIndex, int[] path); /// <summary> /// Получает значения переменных вычисленного выражения /// </summary> /// <param name="expression"></param> /// <param name="frameIndex"></param> /// <param name="path"></param> /// <returns></returns> Variable[] GetEvaluatedVariables(string expression, int threadId, int frameIndex, int[] path); /// <summary> /// Вычисление выражения на остановленном процессе /// </summary> /// <param name="threadId"></param> /// <param name="contextFrame">Кадр стека, относительно которого вычисляем</param> /// <param name="expression">Выражение</param> /// <returns>Переменная с результатом</returns> Variable Evaluate(int threadId, int contextFrame, string expression); void Next(int threadId); void StepIn(int threadId); void StepOut(int threadId); /// <summary> /// Отключение сеанса отладки по инициативе IDE /// </summary> /// <param name="terminate"></param> void Disconnect(bool terminate); int[] GetThreads(); int GetProcessId(); } }