int IDebugThread2.EnumFrameInfo( enum_FRAMEINFO_FLAGS dwFieldSpec, uint nRadix, out IEnumDebugFrameInfo2 ppEnum) { ppEnum = null; if (CurrentFrames == null || CurrentFrames.Count == 0) { ppEnum = FrameInfoEnum.Create(); return(VSConstants.S_OK); } var frameInfos = new List <FRAMEINFO>(); foreach (var frame in CurrentFrames) { var frameInfo = new FRAMEINFO[1]; (frame as IDebugStackFrame2).GetInfo(dwFieldSpec, nRadix, frameInfo); frameInfos.Add(frameInfo[0]); } ppEnum = FrameInfoEnum.Create(frameInfos); return(VSConstants.S_OK); }
public void Setup() { _stackFramesProvider = Substitute.ForPartsOf <StackFramesProvider>(null, null, null, null, null); _debugThread = Substitute.For <IDebugThread>(); _frameInfoEnum = new FrameInfoEnum( _stackFramesProvider, _fieldSpec, _debugThread); }
/// <summary> /// Load call stack /// </summary> public int EnumFrameInfo(enum_FRAMEINFO_FLAGS dwFieldSpec, uint nRadix, out IEnumDebugFrameInfo2 ppEnum) { DLog.Debug(DContext.VSDebuggerComCall, "IDebugThread2.EnumFrameInfo"); // Get frames var frameInfos = new List<FRAMEINFO>(); foreach (var stackFrame in GetCallStack()) { FRAMEINFO info; ((DebugStackFrame)stackFrame).SetFrameInfo(dwFieldSpec, out info); frameInfos.Add(info); } ppEnum = new FrameInfoEnum(frameInfos); return VSConstants.S_OK; }