ICorDebugChain Interface

Represents a segment of a physical or logical call stack.

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
    );
};

Methods

Method

Description

ICorDebugChain::EnumerateFrames Method

Gets an enumerator that contains all the managed stack frames in the chain, starting with the most recent frame.

ICorDebugChain::GetActiveFrame Method

Gets the active (that is, most recent) frame on the chain.

ICorDebugChain::GetCallee Method

Gets the chain that was called by this chain.

ICorDebugChain::GetCaller Method

Gets the chain that called this chain.

ICorDebugChain::GetContext Method

Not implemented.

ICorDebugChain::GetNext Method

Gets the next chain of frames for the thread.

ICorDebugChain::GetPrevious Method

Gets the previous chain of frames for the thread.

ICorDebugChain::GetReason Method

Gets the reason for the genesis of this calling chain.

ICorDebugChain::GetRegisterSet Method

Gets the register set for the active part of this chain.

ICorDebugChain::GetStackRange Method

Gets the address range of the stack segment for this chain.

ICorDebugChain::GetThread Method

Gets the physical thread this call chain is part of.

ICorDebugChain::IsManaged Method

Gets a value that indicates whether this chain is running managed code.

Remarks

The stack frames in a chain occupy contiguous stack space and share the same thread and context. A chain may represent either managed or unmanaged code chains. An empty ICorDebugChain instance represents an unmanaged code chain.

Requirements

Platforms: Windows 2000, Windows XP, Windows Server 2003 family

Header: CorDebug.idl

Library: CorGuids.lib

.NET Framework Version: 2.0, 1.1, 1.0

See Also

Concepts

Debugging Interfaces