/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
v1.9.4
src/OneScript.DebugProtocol/IDebuggerService.cs
121 строка
4 KB
EvilBeaver
Поддержка признака terminateDebuggee
17 сен 2023, 09:08
17 сен 2023, 09:08
645b0e7
Код
Авторство
О чём код?
/*---------------------------------------------------------- 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/. ----------------------------------------------------------*/ #if NETFRAMEWORK using System.ServiceModel; #endif namespace OneScript.DebugProtocol { /// <summary> /// Сервис непосредственной работы с командами отладки, шагами, брейкпоинтами и пр. /// </summary> #if NETFRAMEWORK [ServiceContract( Namespace = "http://oscript.io/services/debugger", SessionMode = SessionMode.Required, CallbackContract = typeof(IDebugEventListener))] #endif public interface IDebuggerService { /// <summary> /// Разрешает потоку виртуальной машины начать выполнение скрипта /// Все точки останова уже установлены, все настройки сделаны /// </summary> #if NETFRAMEWORK [OperationContract(IsOneWay = true)] #endif void Execute(int threadId); /// <summary> /// Установка точек остановки /// </summary> /// <param name="breaksToSet"></param> /// <returns>Возвращает установленные точки (те, которые смог установить)</returns> #if NETFRAMEWORK [OperationContract] #endif Breakpoint[] SetMachineBreakpoints(Breakpoint[] breaksToSet); /// <summary> /// Запрашивает состояние кадров стека вызовов /// </summary> #if NETFRAMEWORK [OperationContract] #endif StackFrame[] GetStackFrames(int threadId); /// <summary> /// Получает значения переменных /// </summary> /// <param name="frameIndex"></param> /// <param name="path"></param> /// <returns></returns> #if NETFRAMEWORK [OperationContract] #endif Variable[] GetVariables(int threadId, int frameIndex, int[] path); /// <summary> /// Получает значения переменных вычисленного выражения /// </summary> /// <param name="expression"></param> /// <param name="frameIndex"></param> /// <param name="path"></param> /// <returns></returns> #if NETFRAMEWORK [OperationContract] #endif 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> #if NETFRAMEWORK [OperationContract] #endif Variable Evaluate(int threadId, int contextFrame, string expression); #if NETFRAMEWORK [OperationContract(IsOneWay = true)] #endif void Next(int threadId); #if NETFRAMEWORK [OperationContract(IsOneWay = true)] #endif void StepIn(int threadId); #if NETFRAMEWORK [OperationContract(IsOneWay = true)] #endif void StepOut(int threadId); /// <summary> /// Отключение сеанса отладки по инициативе IDE /// </summary> /// <param name="terminate"></param> #if NETFRAMEWORK [OperationContract(IsOneWay = true)] #endif void Disconnect(bool terminate); #if NETFRAMEWORK [OperationContract] #endif int[] GetThreads(); #if NETFRAMEWORK [OperationContract] #endif int GetProcessId(); } }