ICorDebugStackWalk::GetContext 方法

返回 ICorDebugStackWalk 对象中当前帧的上下文。

语法

HRESULT GetContext([in]  ULONG32 contextFlags,  
                   [in]  ULONG32 contextBufSize,  
                   [out] ULONG32* contextSize,  
                   [out, size_is(contextBufSize)] BYTE contextBuf[]);  

参数

contextFlags
[in] 指示上下文缓冲区的请求内容的标志(在 WinNT.h 中定义)。

contextBufSize
[in] 上下文缓冲区的已分配大小。

contextSize
[out] 上下文的实际大小。 此值必须小于或等于上下文缓冲区的大小。

contextBuf
[out] 上下文缓冲区。

返回值

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

HRESULT 说明
S_OK 已成功返回当前帧的上下文。
E_FAIL 无法返回上下文。
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT BUFFER) 上下文缓冲区太小。
CORDBG_E_PAST_END_OF_STACK 帧指针已位于堆栈末尾,因此无法访问其他帧。

例外

备注

由于展开只恢复寄存器的子集(例如非易失性寄存器),因此上下文可能与调用时的寄存器状态不完全匹配。

要求

平台:请参阅系统要求

标头:CorDebug.idl、CorDebug.h

库:CorGuids.lib

.NET Framework 版本:自 4 起可用

请参阅