C# Class VSNDK.DebugEngine.AD7StackFrame

Represents a logical stack frame on the thread stack. Also implements the IDebugExpressionContext interface, which allows expression evaluation and watch windows.
Inheritance: IDebugStackFrame2, IDebugExpressionContext2
Show file Open project: blackberry/VSPlugin Class Usage Examples

Public Properties

Property Type Description
_arguments System.Collections.ArrayList
_lastEvaluatedExpression VariableInfo
_locals System.Collections.ArrayList
m_dispatcher EventDispatcher
m_engine AD7Engine
m_functionName string
m_thread AD7Thread

Public Methods

Method Description
AD7StackFrame ( AD7Engine engine, AD7Thread thread, string frameInfo ) : System

Constructor.

CreateLocalsPlusArgsProperties ( enum_DEBUGPROP_INFO_FLAGS dwFields, uint &elementsReturned, IEnumDebugPropertyInfo2 &enumObject ) : void

Construct an instance of IEnumDebugPropertyInfo2 for the combined locals and parameters.

SetFrameInfo ( enum_FRAMEINFO_FLAGS dwFieldSpec, FRAMEINFO &frameInfo ) : void

Construct a FRAMEINFO for this stack frame with the requested information.

create ( AD7Engine engine, AD7Thread thread, string frameInfo, bool &created ) : AD7StackFrame

Search the __stackframes cache for the internal representation of the stack frame associated to the GDB frameInfo information. If successful, returns the stack frame; otherwise, creates a new one and return it.

Private Methods

Method Description
CreateLocalProperties ( enum_DEBUGPROP_INFO_FLAGS dwFields, uint &elementsReturned, IEnumDebugPropertyInfo2 &enumObject ) : void

Construct an instance of IEnumDebugPropertyInfo2 for the locals collection only.

CreateParameterProperties ( enum_DEBUGPROP_INFO_FLAGS dwFields, uint &elementsReturned, IEnumDebugPropertyInfo2 &enumObject ) : void

Construct an instance of IEnumDebugPropertyInfo2 for the parameters collection only.

IDebugExpressionContext2 ( string &pbstrName ) : int

Retrieves the name of the evaluation context. The name is the description of this evaluation context. It is typically something that can be parsed by an expression evaluator that refers to this exact evaluation context. For example, in C++ the name is as follows: "{ function-name, source-file-name, module-file-name }" Not implemented. (http://msdn.microsoft.com/en-ca/library/bb161724.aspx)

IDebugExpressionContext2 ( string pszCode, enum_PARSEFLAGS dwFlags, uint nRadix, IDebugExpression2 &ppExpr, string &pbstrError, uint &pichError ) : int

Parses a text-based expression for evaluation. (http://msdn.microsoft.com/en-ca/library/bb162304.aspx). GDB will parse and evaluate the expression, returning the result or an error in the expression. So, the only task for this method is to create the IDebugExpression2 object that will be sent indirectly to the methods responsible for the evaluation.

IDebugStackFrame2 ( IDebugCodeContext2 &memoryAddress ) : int

Gets the code context for this stack frame. The code context represents the current instruction pointer in this stack frame. (http://msdn.microsoft.com/en-us/library/bb147046.aspx)

IDebugStackFrame2 ( IDebugDocumentContext2 &docContext ) : int

Gets the document context for this stack frame. The debugger will call this when the current stack frame is changed and will use it to open the correct source document for this stack frame. (http://msdn.microsoft.com/en-us/library/bb146338.aspx)

IDebugStackFrame2 ( IDebugExpressionContext2 &ppExprCxt ) : int

Gets an evaluation context for expression evaluation within the current context of a stack frame and thread. Generally, an expression evaluation context can be thought of as a scope for performing expression evaluation. Call the IDebugExpressionContext2::ParseText method to parse an expression and then call the resulting IDebugExpression2::EvaluateSync or IDebugExpression2::EvaluateAsync methods to evaluate the parsed expression. (http://msdn.microsoft.com/en-us/library/bb161269.aspx)

IDebugStackFrame2 ( IDebugProperty2 &property ) : int

Gets a description of the properties associated with a stack frame. (http://msdn.microsoft.com/en-us/library/bb144920.aspx)

IDebugStackFrame2 ( IDebugThread2 &thread ) : int

Gets the thread associated with a stack frame. (http://msdn.microsoft.com/en-us/library/bb161776.aspx)

IDebugStackFrame2 ( enum_DEBUGPROP_INFO_FLAGS dwFields, uint nRadix, System.Guid &guidFilter, uint dwTimeout, uint &elementsReturned, IEnumDebugPropertyInfo2 &enumObject ) : int

Creates an enumerator for properties associated with the stack frame, such as local variables. (http://msdn.microsoft.com/en-us/library/bb145607.aspx).

IDebugStackFrame2 ( enum_FRAMEINFO_FLAGS dwFieldSpec, uint nRadix, FRAMEINFO pFrameInfo ) : int

Gets a description of the stack frame. (http://msdn.microsoft.com/en-us/library/bb145146.aspx)

IDebugStackFrame2 ( string &name ) : int

Gets the name of the stack frame. The name of a stack frame is typically the name of the method being executed. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145002.aspx)

IDebugStackFrame2 ( string &pbstrLanguage, System.Guid &pguidLanguage ) : int

Gets the language associated with this stack frame. (http://msdn.microsoft.com/en-us/library/bb145096.aspx)

IDebugStackFrame2 ( ulong &addrMin, ulong &addrMax ) : int

Gets a machine-dependent representation of the range of physical addresses associated with a stack frame. Not implemented. (http://msdn.microsoft.com/en-us/library/bb145597.aspx)

Method Details

AD7StackFrame() public method

Constructor.
public AD7StackFrame ( AD7Engine engine, AD7Thread thread, string frameInfo ) : System
engine AD7Engine The AD7Engine object that represents the DE.
thread AD7Thread Represents the thread for this stack frame.
frameInfo string Array of strings with the information provided by GDB about this stack frame.
return System

CreateLocalsPlusArgsProperties() public method

Construct an instance of IEnumDebugPropertyInfo2 for the combined locals and parameters.
public CreateLocalsPlusArgsProperties ( enum_DEBUGPROP_INFO_FLAGS dwFields, uint &elementsReturned, IEnumDebugPropertyInfo2 &enumObject ) : void
dwFields enum_DEBUGPROP_INFO_FLAGS A combination of flags from the DEBUGPROP_INFO_FLAGS enumeration that specifies which fields in /// the enumObject are to be filled in.
elementsReturned uint Returns the number of elements in the enumeration.
enumObject IEnumDebugPropertyInfo2 Returns an IEnumDebugPropertyInfo2 object containing a list of the desired properties.
return void

SetFrameInfo() public method

Construct a FRAMEINFO for this stack frame with the requested information.
public SetFrameInfo ( enum_FRAMEINFO_FLAGS dwFieldSpec, FRAMEINFO &frameInfo ) : void
dwFieldSpec enum_FRAMEINFO_FLAGS A combination of flags from the FRAMEINFO_FLAGS enumeration that specifies which fields of the /// frameInfo parameter are to be filled in.
frameInfo FRAMEINFO A FRAMEINFO structure that is filled in with the description of the stack frame.
return void

create() public static method

Search the __stackframes cache for the internal representation of the stack frame associated to the GDB frameInfo information. If successful, returns the stack frame; otherwise, creates a new one and return it.
public static create ( AD7Engine engine, AD7Thread thread, string frameInfo, bool &created ) : AD7StackFrame
engine AD7Engine The AD7Engine object that represents the DE.
thread AD7Thread Represents the thread for this stack frame.
frameInfo string Array of strings with the information provided by GDB about this stack frame.
created bool Boolean value that indicates if a new object for this stack frame was created or not.
return AD7StackFrame

Property Details

_arguments public property

Contains the parameters used to call the method/function that originated this stack frame.
public ArrayList,System.Collections _arguments
return System.Collections.ArrayList

_lastEvaluatedExpression public property

public VariableInfo,VSNDK.DebugEngine _lastEvaluatedExpression
return VariableInfo

_locals public property

Contains the locals variables to this stack frame.
public ArrayList,System.Collections _locals
return System.Collections.ArrayList

m_dispatcher public static property

The class that manages debug events for the debug engine.
public static EventDispatcher,VSNDK.DebugEngine m_dispatcher
return EventDispatcher

m_engine public property

The AD7Engine object that represents the DE.
public AD7Engine,VSNDK.DebugEngine m_engine
return AD7Engine

m_functionName public property

The function name associated to this stack frame.
public string m_functionName
return string

m_thread public property

Represents the thread for this stack frame.
public AD7Thread,VSNDK.DebugEngine m_thread
return AD7Thread