Поделиться через


Интерфейс IDataModelScriptDebugStack (dbgmodel.h)

Интерфейс к стеку в скрипте. Поставщик скриптов реализует этот интерфейс для предоставления представления стека вызовов отладчику скрипта.

Наследство

IDataModelScriptDebugStack наследует от IUnknown.

Методика

Интерфейс IDataModelScriptDebugStack имеет эти методы.

 
IDataModelScriptDebugStack::AddRef

Метод IDataModelScriptDebugStack::AddRef увеличивает число ссылок для интерфейса объекта.
IDataModelScriptDebugStack::GetFrameCount

Метод GetFrameCount возвращает количество кадров стека в этом сегменте стека вызовов.
IDataModelScriptDebugStack::GetStackFrame

GetStackFrame получает определенный кадр стека из сегмента стека.
IDataModelScriptDebugStack::QueryInterface

Метод IDataModelScriptDebugStack::QueryInterface извлекает указатели на поддерживаемые интерфейсы объекта.
IDataModelScriptDebugStack::Release

Метод IDataModelScriptDebugStack::Release уменьшает количество ссылок для интерфейса объекта.

Замечания

При возникновении события, которое прерывается в отладчик скрипта, интерфейс отладки хочет получить стек вызовов для расположения останова. Это делается с помощью метода GetStack. Такой стек выражается с помощью IDataModelScriptDebugStack, который определяется как указано ниже.

Обратите внимание, что общий стек может охватывать несколько сценариев и (или) нескольких поставщиков сценариев. Стек вызовов, возвращаемый из одного вызова метода GetStack в интерфейсе отладки конкретного скрипта, должен возвращать только сегмент стека вызовов в пределах этого скрипта. Вполне возможно, что подсистема отладки скриптов может получить стек вызовов, охватывая несколько контекстов скриптов, если два сценария одного поставщика взаимодействуют. Метод GetStack не должен возвращать часть стека, которая находится в другом скрипте. Вместо этого, если эта ситуация может быть обнаружена, кадр стека, который является фреймом границы в скрипте, должен пометить себя как кадр перехода через реализацию методов IsTransitionPoint и GetTransition в этом кадре стека. Ожидается, что интерфейс отладчика объединяет общий стек из нескольких сегментов стека, которые существуют.

Очень важно, чтобы переходы были реализованы таким образом, или интерфейс отладки может направлять запросы к локальным переменным, параметрам, точкам останова и другим конкретным конструкциям скрипта в неправильный контекст скрипта. Это приведет к неопределенному поведению в интерфейсе отладчика.

Требования

Требование Ценность
заголовка dbgmodel.h

См. также

Обзор модели данных отладчика C++