共用方式為


ICorDebugUnmanagedCallback::D ebugEvent 方法

通知偵錯工具已引發原生事件。

語法

HRESULT DebugEvent (
    [in] LPDEBUG_EVENT  pDebugEvent,
    [in] BOOL           fOutOfBand
);

參數

pDebugEvent [在]原生事件的指標。

fOutOfBand[in] true,如果在未受控事件發生之後無法與受控進程狀態互動,直到偵錯工具呼叫 ICorDebugController::Continue 為止;否則,則為止。 false

備註

如果偵錯的執行緒是 Win32 執行緒,請勿使用 Win32 偵錯介面的任何成員。 您只能在 Win32 執行緒上呼叫,而且只有在繼續經過頻外事件時才能呼叫 ICorDebugController::Continue

DebugEvent回呼不遵循回呼的標準規則。 當您呼叫 DebugEvent時,進程將處於原始的作業系統偵錯停止狀態。 該過程將不會同步。 必要時,它會自動進入同步處理狀態,以滿足 Managed 程式碼相關資訊的要求,這可能會導致其他巢狀 DebugEvent 回呼。

在進程上呼叫 ICorDebugProcess::ClearCurrentException ,以忽略例外狀況事件,再繼續進程。 呼叫這個方法會在繼續要求上傳送DBG_CONTINUE而不是DBG_EXCEPTION_NOT_HANDLED,並自動清除頻外中斷點和單一步驟例外狀況。 頻外事件可能隨時發生,即使正在偵錯的應用程式顯示為已停止,且已存在未完成的頻內事件也一樣。

偵錯工具應該立即繼續超越頻外中斷點事件。 偵錯工具應該使用 ICorDebugProcess2::SetUnmanagedBreakpointICorDebugProcess2::ClearUnmanagedBreakpoint 方法來新增和移除中斷點。 這些方法會自動略過任何頻外中斷點。 因此,唯一分派的頻外中斷點應該是指令資料流程中已有的原始中斷點,例如呼叫 Win32 DebugBreak 函式。 請勿嘗試使用 ICorDebugProcess::ClearCurrentExceptionICorDebugProcess::GetThreadContextICorDebugProcess::SetThreadContext 或偵錯 API 的任何其他成員。

需求

平台: 請參閱 .NET 支援的作業系統

標題: CorDebug.idl、CorDebug.h

圖書館: CorGuids.lib

.NET 版本: 自 .NET Framework 1.0 起提供

另請參閱