// Retrieves a list of the stack frames for this thread. // We currently call into the process and get the frames. We might want to cache the frame info. int IDebugThread2.EnumFrameInfo(enum_FRAMEINFO_FLAGS dwFieldSpec, uint nRadix, out IEnumDebugFrameInfo2 enumObject) { IList <NodeStackFrame> stackFrames = _thread.Frames; if (stackFrames == null) { enumObject = null; return(VSConstants.E_FAIL); } int numStackFrames = stackFrames.Count; var frameInfoArray = new FRAMEINFO[numStackFrames]; for (int i = 0; i < numStackFrames; i++) { var frame = new AD7StackFrame(_engine, this, stackFrames[i]); frame.SetFrameInfo(dwFieldSpec, out frameInfoArray[i]); } enumObject = new AD7FrameInfoEnum(frameInfoArray); return(VSConstants.S_OK); }
public AD7Expression(AD7StackFrame frame, string expression) { _frame = frame; _expression = expression; }
// Retrieves a list of the stack frames for this thread. // We currently call into the process and get the frames. We might want to cache the frame info. int IDebugThread2.EnumFrameInfo(enum_FRAMEINFO_FLAGS dwFieldSpec, uint nRadix, out IEnumDebugFrameInfo2 enumObject) { IList<NodeStackFrame> stackFrames = _thread.Frames; if (stackFrames == null) { enumObject = null; return VSConstants.E_FAIL; } int numStackFrames = stackFrames.Count; var frameInfoArray = new FRAMEINFO[numStackFrames]; for (int i = 0; i < numStackFrames; i++) { var frame = new AD7StackFrame(_engine, this, stackFrames[i]); frame.SetFrameInfo(dwFieldSpec, out frameInfoArray[i]); } enumObject = new AD7FrameInfoEnum(frameInfoArray); return VSConstants.S_OK; }