ICorProfilerCallback 介面
提供方法讓 Common Language Runtime (CLR) 在分析工具已訂閱的事件發生時,通知程式碼分析工具。
方法
方法 | 描述 |
---|---|
AppDomainCreationFinished 方法 | 通知分析工具已建立應用程式定義域。 |
AppDomainCreationStarted 方法 | 通知分析工具,正在建立應用程式定義域。 |
AppDomainShutdownFinished 方法 | 通知分析工具,已從處理序卸載應用程式定義域。 |
AppDomainShutdownStarted 方法 | 通知分析工具,正從處理序卸載應用程式定義域。 |
AssemblyLoadFinished 方法 | 通知分析工具已完成載入組件。 |
AssemblyLoadStarted 方法 | 通知分析工具正在載入組件。 |
AssemblyUnloadFinished 方法 | 通知分析工具已完成卸載組件。 |
AssemblyUnloadStarted 方法 | 通知分析工具正在卸載組件。 |
ClassLoadFinished 方法 | 通知分析工具已完成載入類別。 |
ClassLoadStarted 方法 | 通知分析工具正在載入類別。 |
ClassUnloadFinished 方法 | 通知分析工具已完成卸載類別。 |
ClassUnloadStarted 方法 | 通知分析工具正在卸載類別。 |
COMClassicVTableCreated 方法 | 通知分析工具,已建立指定 IID 和類別的執行階段可呼叫包裝函式 (RCW)。 |
COMClassicVTableDestroyed 方法 | 通知分析工具正在終結 RCW。 |
ExceptionCatcherEnter 方法 | 通知分析工具,控制項正傳遞至適當的 catch 區塊。 |
ExceptionCatcherLeave 方法 | 通知分析工具,控制項正從適當的 catch 區塊傳出。 |
ExceptionCLRCatcherExecute 方法 | .NET Framework 2.0 版中已過時。 |
ExceptionCLRCatcherFound 方法 | .NET Framework 2.0 中已過時。 |
ExceptionOSHandlerEnter 方法 | 未實作。 需要非受控例外狀況資訊的分析工具必須透過其他方式取得這項資訊。 |
ExceptionOSHandlerLeave 方法 | 未實作。 需要非受控例外狀況資訊的分析工具必須透過其他方式取得這項資訊。 |
ExceptionSearchCatcherFound 方法 | 通知分析工具,例外狀況處理的搜尋階段已找到擲回之例外狀況的處理常式。 |
ExceptionSearchFilterEnter 方法 | 通知分析工具正在執行使用者篩選。 |
ExceptionSearchFilterLeave 方法 | 通知分析工具剛完成執行使用者篩選。 |
ExceptionSearchFunctionEnter 方法 | 通知分析工具,例外狀況處理的搜尋階段已進入函式。 |
ExceptionSearchFunctionLeave 方法 | 通知分析工具,例外狀況處理的搜尋階段已完成搜尋函式。 |
ExceptionThrown 方法 | 通知分析工具,已擲回例外狀況。 |
ExceptionUnwindFinallyEnter 方法 | 通知分析工具,例外狀況處理的回溯階段正在進入指定函式中包含的 finally 子句。 |
ExceptionUnwindFinallyLeave 方法 | 通知分析工具例外狀況處理的回溯階段已離開 finally 子句。 |
ExceptionUnwindFunctionEnter 方法 | 通知分析工具,例外狀況處理的回溯階段已進入函式。 |
ExceptionUnwindFunctionLeave 方法 | 通知分析工具例外狀況處理的回溯階段已完成回溯函式。 |
FunctionUnloadStarted 方法 | 通知分析工具執行階段已開始卸載函式。 |
Initialize 方法 | 每當啟動新的 CLR 應用程式時,完成呼叫以初始化分析工具。 |
JITCachedFunctionSearchFinished 方法 | 通知分析工具,已完成搜尋先前使用 NGen.exe 編譯的函式。 |
JITCachedFunctionSearchStarted 方法 | 通知分析工具,已開始搜尋先前使用 NGen.exe 編譯的函式。 |
JITCompilationFinished 方法 | 通知分析工具,JIT 編譯器已完成編譯函式。 |
JITCompilationStarted 方法 | 通知分析工具,Just-In-Time (JIT) 編譯器已開始編譯函式。 |
JITFunctionPitched 方法 | 通知分析工具已從記憶體中移除 JIT 編譯的函式。 |
JITInlining 方法 | 通知分析工具 JIT 編譯程式即將與另一個函式一起插入函式。 |
ManagedToUnmanagedTransition 方法 | 通知分析工具已發生從受控程式碼轉換至非受控程式碼。 |
ModuleAttachedToAssembly 方法 | 通知分析工具,模組正連結至其父組件。 |
ModuleLoadFinished 方法 | 通知分析工具已完成載入模組。 |
ModuleLoadStarted 方法 | 通知分析工具正在載入模組。 |
ModuleUnloadFinished 方法 | 通知分析工具已完成卸載模組。 |
ModuleUnloadStarted 方法 | 通知分析工具正在卸載模組。 |
MovedReferences 方法 | 通知分析工具在記憶體回收期間移動的物件參考。 |
ObjectAllocated 方法 | 通知分析工具,堆積內的記憶體已配置給物件。 |
ObjectReferences 方法 | 通知分析工具指定之物件所參考記憶體中的物件。 |
ObjectsAllocatedByClass 方法 | 通知分析工具有關自先前記憶體回收以來所建立之每個指定類別的執行個體數目。 |
RemotingClientInvocationFinished 方法 | 通知分析工具已在用戶端上執行完成遠端呼叫。 |
RemotingClientInvocationStarted 方法 | 通知分析工具已啟動遠端呼叫。 |
RemotingClientReceivingReply 方法 | 通知分析工具已完成遠端呼叫的伺服器端部分,而用戶端現在正在接收並即將處理回覆。 |
RemotingClientSendingMessage 方法 | 通知分析工具用戶端正在將要求傳送至伺服器。 |
RemotingServerInvocationReturned 方法 | 通知分析工具,處理序已經完成叫用方法以回應遠端方法引動要求。 |
RemotingServerInvocationStarted 方法 | 通知分析工具,處理序正在叫用方法以回應遠端方法引動要求。 |
RemotingServerReceivingMessage 方法 | 通知分析工具,處理序正在接收遠端方法叫用或啟用要求。 |
RemotingServerSendingReply 方法 | 通知分析工具,處理已完成處理遠端方法叫用要求,並即將透過通道傳輸回覆。 |
RootReferences 方法 | 在記憶體回收之後,通知分析工具有關根參考的資訊。 |
RuntimeResumeFinished 方法 | 通知分析工具,執行階段已繼續所有執行階段執行緒,並已返回正常作業。 |
RuntimeResumeStarted 方法 | 通知分析工具執行階段正在繼續所有執行階段執行緒。 |
RuntimeSuspendAborted 方法 | 通知分析工具執行階段中止發生的執行階段暫停。 |
RuntimeSuspendFinished 方法 | 通知分析工具執行階段已完成所有執行階段執行緒暫停。 |
RuntimeSuspendStarted 方法 | 通知分析工具執行階段將要暫止所有執行階段執行緒。 |
RuntimeThreadResumed 方法 | 通知分析工具,指定執行緒在暫止之後已繼續。 |
RuntimeThreadSuspended 方法 | 通知分析工具指定的執行緒已暫止或即將暫止。 |
Shutdown 方法 | 通知分析工具應用程式正在關閉。 |
ThreadAssignedToOSThread 方法 | 通知分析工具,指出正使用特定作業系統 (OS) 執行緒來實作受控執行緒。 |
ThreadCreated 方法 | 通知分析工具已建立執行緒。 |
ThreadDestroyed 方法 | 通知分析工具已終結執行緒。 |
UnmanagedToManagedTransition 方法 | 通知分析工具已發生從非受控程式碼轉換至受控程式碼。 |
備註
CLR 會呼叫 ICorProfilerCallback
(或 ICorProfilerCallback2) 介面中的方法,以在分析工具訂閱的事件發生時通知分析工具。 這是 CLR 與程式碼分析工具通訊的主要回呼介面。
程式碼分析工具必須實作 ICorProfilerCallback
介面的方法。 針對 .NET Framework 2.0 版或更新版本,分析工具也必須實 ICorProfilerCallback2
作 方法。 每個方法實作都必須傳回 HRESULT,其值為 S_OK 則為成功,或 E_FAIL 則為失敗。 目前,CLR 會忽略每個回呼所傳回的 HRESULT,但 ICorProfilerCallback::ObjectReferences 除外。
在 Microsoft Windows 登錄中,程式碼分析工具必須註冊其元件物件模型 (COM) 物件,該物件需實作 ICorProfilerCallback
和 ICorProfilerCallback2
介面。 程式碼分析工具會透過呼叫 ICorProfilerInfo::SetEventMask 來訂閱想要接收通知的事件。 這通常是在分析工具的 ICorProfilerCallback::Initialize 實作中完成。 然後,當事件即將發生或剛發生在執行中的執行階段處理序時,分析工具就能夠接收來自執行階段的通知。
注意
分析工具會註冊單一 COM 物件。 如果分析工具是以 .NET Framework 1.0 或 1.1 版為目標,該 COM 物件只需要實作 的方法 ICorProfilerCallback
。 如果以 .NET Framework 2.0 版或更新版本為目標,COM 物件也必須實作 的方法 ICorProfilerCallback2
。
規格需求
平台:請參閱系統需求。
標頭: CorProf.idl、CorProf.h
程式庫:CorGuids.lib
.NET Framework版本:自 1.0 起可用