Интерфейс 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++