ICorDebugThread3::GetActiveInternalFrames 方法

返回堆栈上的内部帧数组(ICorDebugInternalFrame2 对象)。

语法

HRESULT GetActiveInternalFrames
      (
      [in] ULONG32 cInternalFrames,
      [out] ULONG32 *pcInternalFrames,
      [in, out,size_is(cInternalFrames), length_is(*pcInternalFrames)]
            ICorDebugInternalFrame2 * ppInternalFrames[]
      );

参数

cInternalFrames [in]所需的 ppInternalFrames内部帧数。

pcInternalFrames [out]指向包含堆栈上内部帧数的指针 ULONG32

ppInternalFrames [in, out]指向堆栈上内部帧数组的地址的指针。

返回值

此方法返回以下特定 HRESULT 以及表示方法失败的 HRESULT 错误。

HRESULT 说明
S_OK 已成功创建 ICorDebugInternalFrame2 对象。
E_INVALIDARG cInternalFrames 不为零,并且 ppInternalFramesnullpcInternalFramesnull
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) ppInternalFrames 小于内部帧的计数。

例外

备注

内部帧是运行时推送到堆栈上以存储临时数据的数据结构。

首次调用 GetActiveInternalFrames 时,应将参数 cInternalFrames 设置为 0(零),将参数 ppInternalFrames 设置为 NULL。 GetActiveInternalFrames 首次返回时,pcInternalFrames 将包含堆栈上内部帧的计数。

然后应再次调用 GetActiveInternalFrames。 应在参数 cInternalFrames 中传递正确的计数 (pcInternalFrames),并指定指针指向 ppInternalFrames 中适当大小的数组。

使用 ICorDebugStackWalk::GetFrame 方法返回实际的堆栈帧。

要求

平台:请参阅系统要求

标头:CorDebug.idl、CorDebug.h

库:CorGuids.lib

.NET Framework 版本:自 4 起可用

请参阅