ICorDebugChain

更新:2007 年 11 月

表示一个物理或逻辑调用堆栈段。

interface ICorDebugChain : IUnknown {
    HRESULT EnumerateFrames (
        [out] ICorDebugFrameEnum **ppFrames
    );
        
    HRESULT GetActiveFrame (
        [out] ICorDebugFrame     **ppFrame
    );
        
    HRESULT GetCallee (
        [out] ICorDebugChain     **ppChain
    );
        
    HRESULT GetCaller (
        [out] ICorDebugChain     **ppChain
    );
        
    HRESULT GetContext (
        [out] ICorDebugContext   **ppContext
    );
        
    HRESULT GetNext (
        [out] ICorDebugChain     **ppChain
    );
        
    HRESULT GetPrevious (
        [out] ICorDebugChain     **ppChain
    );
        
    HRESULT GetReason (
        [out] CorDebugChainReason *pReason
    );
        
    HRESULT GetRegisterSet (
        [out] ICorDebugRegisterSet **ppRegisters
    );
        
    HRESULT GetStackRange (
        [out] CORDB_ADDRESS      *pStart, 
        [out] CORDB_ADDRESS      *pEnd
    );
        
    HRESULT GetThread (
        [out] ICorDebugThread    **ppThread
    );
        
    HRESULT IsManaged (
        [out] BOOL               *pManaged
    );
};

方法

方法

说明

ICorDebugChain::EnumerateFrames 方法

获取一个包含链中所有托管堆栈帧的枚举数(从最近的帧开始)。

ICorDebugChain::GetActiveFrame 方法

获取链上的活动帧(即最新的帧)。

ICorDebugChain::GetCallee 方法

获取此链所调用的链。

ICorDebugChain::GetCaller 方法

获取调用此链的链。

ICorDebugChain::GetContext 方法

未实现。

ICorDebugChain::GetNext 方法

获取线程的下一个帧链。

ICorDebugChain::GetPrevious 方法

获取线程的前一个帧链。

ICorDebugChain::GetReason 方法

获取生成此调用链的原因。

ICorDebugChain::GetRegisterSet 方法

获取此链的活动部分的寄存器集。

ICorDebugChain::GetStackRange 方法

获取此链的堆栈段的地址范围。

ICorDebugChain::GetThread 方法

获取此调用链所属的物理线程。

ICorDebugChain::IsManaged 方法

获取一个值,该值指示此链是否正在运行托管代码。

备注

链中的堆栈帧占据相邻的堆栈空间,并共享相同的线程和上下文。链可以表示托管或非托管代码链。空 ICorDebugChain 实例表示非托管代码链。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorDebug.idl

**库:**CorGuids.lib

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

其他资源

调试接口