共用方式為


支援的事件類型

Visual Studio 偵錯目前支援下列事件類型:

  • 非同步事件

    通知會話偵錯管理員 (SDM) 和 IDE 正在偵錯的應用程式狀態正在變更。 這些事件會在 SDM 和 IDE 的閒暇時間處理。 處理事件後,不會將回覆傳送至偵錯引擎 (DE)。 IDebugOutputStringEvent2IDebugMessageEvent2 介面是非同步事件的範例。

  • 同步事件

    通知 SDM 和 IDE 正在偵錯的應用程式狀態正在變更。 這些事件與非同步事件之間的唯一差異是,回覆是透過 ContinueFromSynchronousEvent 方法傳送。

    如果您需要 DE 在 IDE 接收並處理事件之後繼續處理,則傳送同步事件會很有用。

  • 同步停止事件或稱為停止事件

    通知 SDM 和 IDE 正在偵錯的應用程式已停止執行程式碼。 當您透過 Event 方法傳送停止事件時,需要 IDebugThread2 參數。 呼叫以下任一方法可以繼續執行已停止的事件:

    備註

    不支援非同步停止事件。 傳送非同步停止事件是錯誤。

討論

事件的實際實作取決於 DE 的設計。 傳送的每個事件類型由其屬性決定,這些屬性是在您設計 DE 時設定的。 例如,一個 DE 可能會將 IDebugProgramCreateEvent2 作為非同步事件傳送,而另一個 DE 可能會將它作為停止事件傳送。

下表指定哪些事件需要哪些程式和執行緒參數,以及事件類型。 任何事件都可以是同步的。 任何事件都不需要同步。

備註

所有事件都需要 IDebugEngine2 介面。

Event IDebugProgram2 IDebugThread2 停止事件
IDebugActivateDocumentEvent2 允許,但不是必需的 允許,但不是必需的
IDebugBreakEvent2 為必填項目 為必填項目 Yes
IDebugBreakpointBoundEvent2 允許,但不是必需的 允許,但不是必需的
IDebugBreakpointErrorEvent2 允許,但不是必需的 允許,但不是必需的
IDebugBreakpointUnboundEvent2 允許,但不是必需的 允許,但不是必需的
IDebugBreakpointEvent2 為必填項目 為必填項目 Yes
IDebugCanStopEvent2 為必填項目 為必填項目
IDebugDocumentTextEvents2 不允許 不允許
IDebugEngineCreateEvent2 不允許 不允許
IDebugEntryPointEvent2 為必填項目 為必填項目 Yes
IDebugErrorEvent2 允許,但不是必需的 允許,但不是必需的 可以
IDebugExceptionEvent2 為必填項目 為必填項目 Yes
IDebugExpressionEvaluationCompleteEvent2 允許,但不是必需的 允許,但不是必需的 可以
IDebugInterceptExceptionCompleteEvent2 為必填項目 為必填項目 Yes
IDebugLoadCompleteEvent2 為必填項目 為必填項目 Yes
IDebugMessageEvent2 允許,但不是必需的 允許,但不是必需的 可以
IDebugModuleLoadEvent2 為必填項目 允許,但不是必需的
IDebugOutputStringEvent2 允許,但不是必需的 允許,但不是必需的
IDebugProgramCreateEvent2 為必填項目 允許,但不是必需的
IDebugProgramDestroyEvent2 為必填項目 允許,但不是必需的
IDebugPropertyCreateEvent2 為必填項目 允許,但不是必需的
IDebugPropertyDestroyEvent2 為必填項目 允許,但不是必需的
IDebugReturnValueEvent2 允許,但不是必需的 允許,但不是必需的
IDebugStopCompleteEvent2 為必填項目 為必填項目 Yes
IDebugStepCompleteEvent2 為必填項目 為必填項目 Yes
IDebugSymbolSearchEvent2 允許,但不是必需的 允許,但不是必需的
IDebugThreadCreateEvent2 為必填項目 為必填項目
IDebugThreadDestroyEvent2 為必填項目 為必填項目
IDebugThreadNameChangedEvent2 允許,但不是必需的 允許,但不是必需的

另請參閱