共用方式為


FunctionTailcall3WithInfo 函式

通知分析工具目前執行的函式即將執行對另一個函式的 Tail 呼叫,並提供可傳遞至 ICorProfilerInfo3::GetFunctionTailcall3Info 方法 的控制代碼來擷取堆疊框架。

語法

void __stdcall FunctionTailcall3WithInfo(  
               [in] FunctionIDOrClientID functionIDOrClientID,  
               [in] COR_PRF_ELT_INFO eltInfo);  

參數

functionIDOrClientID [in] 目前正在執行且即將進行 Tail 呼叫的函式識別碼。

eltInfo [in] 代表特定堆疊框架之資訊的不透明控制代碼。 此控制代碼只在其傳遞時的回呼期間有效。

備註

FunctionTailcall3WithInfo 回呼方法會通知分析工具已呼叫函式,並允許分析工具使用 ICorProfilerInfo3::GetFunctionTailcall3Info 方法來檢查堆疊框架。 若要存取堆疊框架資訊,則必須設定 COR_PRF_ENABLE_FRAME_INFO 旗標。 分析工具可以使用 ICorProfilerInfo::SetEventMask 方法來設定事件旗標,然後使用 ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo 方法來註冊此函式的實作。

FunctionTailcall3WithInfo 函式是回呼;您必須加以實作。 實作必須使用 __declspec(naked) 儲存體類別屬性。

執行引擎在呼叫此函式之前不會儲存任何暫存器。

  • 進入時,您必須儲存使用的所有暫存器,包括浮點單位 (FPU)。

  • 離開時,您必須將其呼叫端推送的所有參數移出以還原堆疊。

FunctionTailcall3WithInfo 的實作不該封鎖,因為它會延遲記憶體回收。 實作不該嘗試記憶體回收,因為堆疊可能不是處於記憶體回收友善狀態。 如果嘗試記憶體回收,執行階段將會封鎖直到 FunctionTailcall3WithInfo 傳回為止。

此外,FunctionTailcall3WithInfo 函式不得呼叫受控程式碼,或以任何方式造成受控記憶體配置。

規格需求

平台:請參閱系統需求

標頭:CorProf.idl

程式庫:CorGuids.lib

.NET Framework版本:自 2.0 起可用

另請參閱