IDataModelScriptDebugStack interface (dbgmodel.h)

An interface to a stack in the script. The script provider implements this interface to expose the notion of a call stack to the script debugger.

Inheritance

IDataModelScriptDebugStack inherits from IUnknown.

Methods

The IDataModelScriptDebugStack interface has these methods.

 
IDataModelScriptDebugStack::AddRef

The IDataModelScriptDebugStack::AddRef method increments the reference count for an interface on an object.
IDataModelScriptDebugStack::GetFrameCount

The GetFrameCount method returns the number of stack frames in this segment of the call stack.
IDataModelScriptDebugStack::GetStackFrame

The GetStackFrame gets a particular stack frame from the stack segment.
IDataModelScriptDebugStack::QueryInterface

The IDataModelScriptDebugStack::QueryInterface method retrieves pointers to the supported interfaces on an object.
IDataModelScriptDebugStack::Release

The IDataModelScriptDebugStack::Release method decrements the reference count for an interface on an object.

Remarks

When an event occurs which breaks into the script debugger, the debugging interface will want to retrieve the call stack for the break location. This is done through the GetStack method. Such stack is expressed via the IDataModelScriptDebugStack which is defined as indicated below.

Note that the overall stack may span multiple scripts and/or multiple script providers. The call stack which is returned from a single call to the GetStack method on a particular script's debug interface should only return the segment of the call stack within the bounds of that script. It is entirely possible that a script debug engine can retrieve the call stack as spans multiple script contexts if two scripts of the same provider interact. The GetStack method should not return the portion of the stack which is in another script. Instead, if this situation can be detected, the stack frame which is the boundary frame into the script should mark itself as a transition frame via an implementation of the IsTransitionPoint and GetTransition methods on that stack frame. It is expected that the debugger interface will stitch together the overall stack from the multiple stack segments which exist.

It is imperative that transitions be implemented in this manner or the debug interface may direct inquiries about local variables, parameters, breakpoints, and other script specific constructs to the wrong script context. This will result in undefined behavior in the debugger interface.

Requirements

Requirement Value
Header dbgmodel.h

See also

Debugger Data Model C++ Overview