GetStackFrameListResult GetStackFrameList(OdId tObject)
tObject. Моникёр объекта среды разработки, для которого запущен процесс отладки.
Операция GetStackFrameList получает стек вызовов во время отладки кода.
Операция позволяет получить список всех подпрограмм, которые выполняются во время отладки приложения. Для выполнения операции укажите в поле tObject моникёр объекта, который был запущен на отладку. Моникёр объекта может быть получен при выполнении операции GetObjects. Запуск объекта на отладку может быть осуществлён с помощью операции DebugModule.
Результатом операции будет коллекция элементов из стека вызовов.
Ниже приведён пример получения стека вызовов во время отладки кода. В запросе передаётся моникёр отлаживаемого модуля. В ответе возвращается полученный стек вызова процедур/функций.
{
"GetStackFrameList" :
{
"tObject" :
{
"id" : "KDNGAKLFDHAOFOAEDIBJJNCFPBMEPGOEAKMGMFICJIGJLLAN!M!305352"
}
}
}
{
"GetStackFrameListResult" :
{
"stackFrames" :
{
"it" :
[
{
"method" : "TObject.GetState",
"moduleName" : "M_STACKFRAMELIST",
"line" : "21"
},
{
"method" : "TObject.Run",
"moduleName" : "M_STACKFRAMELIST",
"line" : "13"
},
{
"method" : "Main",
"moduleName" : "M_STACKFRAMELIST",
"line" : "5"
}
]
}
}
}
public static GetStackFrameListResult GetStackFrameList(MbId mb, string modId)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tGet = new GetStackFrameList()
{
// Формирование моникёра объекта
tObject = new OdId() { id = mb.id + "!" + FindObjectById(mb, modId).k }
};
// Получить стек вызовов
var result = somClient.GetStackFrameList(tGet);
return result;
}
См. также: