通知偵錯工具已引發原生事件。
語法
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::SetUnmanagedBreakpoint 和 ICorDebugProcess2::ClearUnmanagedBreakpoint 方法來新增和移除中斷點。 這些方法會自動略過任何頻外中斷點。 因此,唯一分派的頻外中斷點應該是指令資料流程中已有的原始中斷點,例如呼叫 Win32 DebugBreak 函式。 請勿嘗試使用 ICorDebugProcess::ClearCurrentException、 ICorDebugProcess::GetThreadContext、 ICorDebugProcess::SetThreadContext 或偵錯 API 的任何其他成員。
需求
平台: 請參閱 .NET 支援的作業系統。
標題: CorDebug.idl、CorDebug.h
圖書館: CorGuids.lib
.NET 版本: 自 .NET Framework 1.0 起提供