Share via


ICorDebugThread::EnumerateChains Method

Gets an interface pointer to an ICorDebugChainEnum Interface enumerator that contains all the stack chains in this ICorDebugThread Interface.

HRESULT EnumerateChains (
    [out] ICorDebugChainEnum **ppChains
);

Parameters

Parameter Description

ppChains

[out] A pointer to the address of an ICorDebugChainEnum Interface object that allows enumeration of all the stack chains in this thread, starting at the active (that is, most recent) one.

Remarks

The stack chain represents the physical call stack for the thread. Each of the following instances creates a stack chain boundary:

  • A managed to unmanaged transition and vice versa

  • A context switch

  • A debugger hijacking of a user thread

In the simple case for a thread running purely managed code in a single context, there will be a one to one correspondence between threads and stack chains.

A debugger may want to rearrange the physical call stacks of all threads into logical call stacks. This would involve sorting all the threads' chains by their caller/callee relationships and regrouping them.

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

Reference

ICorDebugThread Interface
ICorDebugThread2 Interface