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 不为零,并且 ppInternalFrames 为 null 或 pcInternalFrames 为 null。

HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)

ppInternalFrames 小于内部帧计数。

备注

内部帧是运行时推入堆栈中的数据结构,可用于存储临时数据。

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

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

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

要求

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

头文件: CorDebug.idl、CorDebug.h

**库:**CorGuids.lib

**.NET Framework 版本:**4

请参见

其他资源

调试接口

调试(非托管 API 参考)