更新: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 实例表示非托管代码链。
要求
**平台:**请参见 .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