Exemplo n.º 1
0
 internal CorStackWalkEx(ICorDebugStackWalk stackwalk, CorThread thread)
     : base(stackwalk, thread)
 {
     m_internalFrameIndex = 0;
     m_internalFrames     = thread.GetActiveInternalFrames();
     m_bEndOfStackFrame   = false;
 }
        /**
         * If PureV3StackWalk is specified, then this method returns a CorStackWalk, which does not expose
         * ICorDebugInternalFrames.  If ExtendedV3StackWalk is specified, then this method returns a
         * CorStackWalkEx, which derives from CorStackWalk and interleaves ICorDebugInternalFrames.
         */
        public CorStackWalk CreateStackWalk(CorStackWalkType type)
        {
            ICorDebugThread3 th3 = m_th as ICorDebugThread3;

            if (th3 == null)
            {
                return(null);
            }

            ICorDebugStackWalk s = null;

            th3.CreateStackWalk(out s);
            if (type == CorStackWalkType.PureV3StackWalk)
            {
                return(new CorStackWalk(s, this));
            }
            else
            {
                return(new CorStackWalkEx(s, this));
            }
        }
 internal CorStackWalk (ICorDebugStackWalk stackwalk, CorThread thread)
     :base(stackwalk)
 {
     m_th = thread;
     m_sw = stackwalk;
 }
 internal CorStackWalkEx (ICorDebugStackWalk stackwalk, CorThread thread)
     :base(stackwalk, thread)
 {
     m_internalFrameIndex = 0;
     m_internalFrames = thread.GetActiveInternalFrames();
     m_bEndOfStackFrame = false;
 }
Exemplo n.º 5
0
 internal CorStackWalk(ICorDebugStackWalk stackwalk, CorThread thread)
     : base(stackwalk)
 {
     m_th = thread;
     m_sw = stackwalk;
 }