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 方法返回实际的堆栈帧。
要求
平台:请参阅系统要求。
标头:CorDebug.idl、CorDebug.h
库:CorGuids.lib
.NET Framework 版本:自 4 起可用