ICorDebugManagedCallback
更新:2007 年 11 月
提供方法來處理偵錯工具回呼。
interface ICorDebugManagedCallback : IUnknown {
HRESULT _stdcall Break(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* thread);
HRESULT _stdcall Breakpoint(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] ICorDebugBreakpoint* pBreakpoint);
HRESULT _stdcall BreakpointSetError(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] ICorDebugBreakpoint* pBreakpoint,
[in] unsigned long dwError);
HRESULT _stdcall ControlCTrap([in] ICorDebugProcess* pProcess);
HRESULT _stdcall CreateAppDomain(
[in] ICorDebugProcess* pProcess,
[in] ICorDebugAppDomain* pAppDomain);
HRESULT _stdcall CreateProcess([in] ICorDebugProcess* pProcess);
HRESULT _stdcall CreateThread(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* thread);
HRESULT _stdcall DebuggerError(
[in] ICorDebugProcess* pProcess,
[in] HRESULT errorHR,
[in] unsigned long errorCode);
HRESULT _stdcall EditAndContinueRemap(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] ICorDebugFunction* pFunction,
[in] long fAccurate);
HRESULT _stdcall EvalComplete(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] ICorDebugEval* pEval);
HRESULT _stdcall EvalException(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] ICorDebugEval* pEval);
HRESULT _stdcall Exception(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] long unhandled);
HRESULT _stdcall ExitAppDomain(
[in] ICorDebugProcess* pProcess,
[in] ICorDebugAppDomain* pAppDomain);
HRESULT _stdcall ExitProcess([in] ICorDebugProcess* pProcess);
HRESULT _stdcall ExitThread(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* thread);
HRESULT _stdcall LoadAssembly(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugAssembly* pAssembly);
HRESULT _stdcall LoadClass(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugClass* c);
HRESULT _stdcall LoadModule(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugModule* pModule);
HRESULT _stdcall LogMessage(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] long lLevel,
[in] unsigned short* pLogSwitchName,
[in] unsigned short* pMessage);
HRESULT _stdcall LogSwitch(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] long lLevel,
[in] unsigned long ulReason,
[in] unsigned short* pLogSwitchName,
[in] unsigned short* pParentName);
HRESULT _stdcall NameChange(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread);
HRESULT _stdcall StepComplete(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugThread* pThread,
[in] ICorDebugStepper* pStepper,
[in] CorDebugStepReason reason);
HRESULT _stdcall UnloadAssembly(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugAssembly* pAssembly);
HRESULT _stdcall UnloadClass(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugClass* c);
HRESULT _stdcall UnloadModule(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugModule* pModule);
HRESULT _stdcall UpdateModuleSymbols(
[in] ICorDebugAppDomain* pAppDomain,
[in] ICorDebugModule* pModule,
[in] IStream* pSymbolStream);
};
方法
方法 |
描述 |
---|---|
當執行程式碼資料流中的 Break 指令時,會告知偵錯工具。 |
|
當遇到中斷點時,會告知偵錯工具。 |
|
告知偵錯工具,Common Language Runtime (CLR) 無法正確繫結以 Just-In-Time (JIT) 編譯函式之前所設定的中斷點。 |
|
告知偵錯工具 CTRL+C 受陷於偵錯中的處理序。 |
|
告知偵錯工具,已建立應用程式定義域。 |
|
當處理序初次附加或啟動時,會告知偵錯工具。 |
|
告知偵錯工具,執行緒已開始執行 Managed 程式碼。 |
|
告知偵錯工具,在嘗試處理來自 CLR 的事件時發生錯誤。 |
|
已被取代。通知偵錯工具,重新對應事件已傳送至 IDE。 |
|
告知偵錯工具,已經完成評估。 |
|
告知偵錯工具,已結束評估並發生未處理的例外狀況。 |
|
告知偵錯工具,已從 Managed 程式碼擲回例外狀況。 |
|
告知偵錯工具,應用程式定義域已結束。 |
|
告知偵錯工具,處理序已結束。 |
|
告知偵錯工具,執行 Managed 程式碼的執行緒已結束。 |
|
告知偵錯工具,已成功載入 CLR 組件。 |
|
告知偵錯工具,已載入類別。 |
|
告知偵錯工具,已成功載入 CLR 模組。 |
|
告知偵錯工具,CLR 的 Managed 執行緒已呼叫 EventLog 類別中的方法來記錄事件。 |
|
告知偵錯工具,CLR 的 Managed 執行緒已呼叫 Switch 類別中的方法,以建立、修改或刪除偵錯/追蹤參數。 |
|
告知偵錯工具,應用程式定義域或執行緒的名稱已變更。 |
|
告知偵錯工具,已完成步驟。 |
|
告知偵錯工具,已卸載 CLR 組件。 |
|
告知偵錯工具,正在卸載類別。 |
|
告知偵錯工具,已卸載 CLR 模組 (DLL)。 |
|
告知偵錯工具,已變更 CLR 模組的符號。 |
備註
所有回呼都會序列化、在相同執行緒中呼叫,而且以同步狀態的處理序呼叫。
每個回呼實作都必須呼叫 ICorDebugController::Continue 才能繼續執行。如果在回呼傳回之前未呼叫 ICorDebugController::Continue,則此處理序會維持停止,而且不再發生事件回呼,直到呼叫 ICorDebugController::Continue。
如果偵錯工具是偵錯 .NET Framework 2.0 版應用程式,它必須實作 ICorDebugManagedCallback2。ICorDebugManagedCallback 或 ICorDebugManagedCallback2 的執行個體就會當做回呼物件傳遞至 ICorDebug::SetManagedHandler。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**CorDebug.idl
**程式庫:**CorGuids.lib
**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0