Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public void Setup()
 {
     _stackFramesProvider =
         Substitute.ForPartsOf <StackFramesProvider>(null, null, null, null, null);
     _debugThread   = Substitute.For <IDebugThread>();
     _frameInfoEnum = new FrameInfoEnum(
         _stackFramesProvider, _fieldSpec, _debugThread);
 }
Exemplo n.º 3
0
        /// <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;
        }