Freigeben über


Unterstützte Ereignistypen

Das Visual Studio, das gerade gedebuggt wird, unterstützt die folgenden Ereignistypen:

  • Asynchrone Ereignisse

    Melden Sie sich den Debug- Manager der Sitzung (SDM) und IDE, das den Zustand der Anwendung, die gedebuggt wird, ändert. Diese Ereignisse werden in der Freizeit des SDM und der IDE verarbeitet. Keine Antwort wird dem DE Modul (Debuggen) gesendet sobald das Ereignis verarbeitet wird. Die IDebugOutputStringEvent2 und IDebugMessageEvent2-Schnittstellen sind Beispiele für asynchronen Ereignissen.

  • Synchrone Ereignisse

    Melden Sie sich das SDM und die IDE, dass der Zustand der Anwendung, die gedebuggt wird, ändert. Der einzige Unterschied zwischen diesen Ereignissen und asynchronen Ereignissen besteht darin, dass eine Antwort mithilfe der IDebugEngine2::ContinueFromSynchronousEvent-Methode gesendet wird.

    Ein synchrone Ereignis zu senden ist hilfreich, wenn Sie DE benötigen, um die Verarbeitung fortzusetzen, nachdem der IDE und verarbeitet das Ereignis empfangen.

  • Synchrone aufhörende Ereignissen beenden oder Ereignisse

    Melden Sie sich das SDM und die IDE, dass die Anwendung, die gedebuggt wird, beendet wurde, Code auszuführen. Wenn Sie ein aufhörendes Ereignis mithilfe der Methode IDebugEventCallback2::Ereignissenden, ist der IDebugThread2-Parameter erforderlich. Ereignisse werden durch einen Aufruf Beenden, bis der Fortsetzung der folgenden Methoden:

    Die Schnittstellen IDebugBreakpointEvent2 und IDebugExceptionEvent2 sind Beispiele für Beendens von Ereignissen.

    Hinweis

    Asynchrone aufhörende Ereignisse werden nicht unterstützt.Es ist ein Fehler, um einen asynchronen aufhörenden Ereignisses zu senden.

Erörterung

Die tatsächliche Implementierung von Ereignissen hängt vom Entwurf DEs ab. Der Typ jedes gesendeten Ereignisses wird durch seine Attribute bestimmt, die festgelegt werden, wenn Sie entwerfen. DE Zum Beispiel sendet ein DE IDebugProgramCreateEvent2 als asynchrones Ereignis, während andere möglicherweise als aufhörendes Ereignis senden.

Die folgende Tabelle gibt an, welche Threads und Programme erforderlichen Parameter für die Ereignistypen sowie Ereignisse. Jedes Ereignis kann synchron sein. Kein Ereignis muss synchron sein.

Hinweis

Die IDebugEngine2-Schnittstelle ist für alle Ereignisse erforderlich.

Ereignis

IDebugProgram2

IDebugThread2

Beenden von Ereignissen

IDebugActivateDocumentEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugBreakEvent2

Erforderlich

Erforderlich

Ja

IDebugBreakpointBoundEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugBreakpointErrorEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugBreakpointUnboundEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugBreakpointEvent2

Erforderlich

Erforderlich

Ja

IDebugCanStopEvent2

Erforderlich

Erforderlich

Nein

IDebugDocumentTextEvents2

Nicht zulässig

Nicht zulässig

Nein

IDebugEngineCreateEvent2

Nicht zulässig

Nicht zulässig

Nein

IDebugEntryPointEvent2

Erforderlich

Erforderlich

Ja

IDebugErrorEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Kann sein

IDebugExceptionEvent2

Erforderlich

Erforderlich

Ja

IDebugExpressionEvaluationCompleteEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Kann sein

IDebugInterceptExceptionCompleteEvent2

Erforderlich

Erforderlich

Ja

IDebugLoadCompleteEvent2

Erforderlich

Erforderlich

Ja

IDebugMessageEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Kann sein

IDebugModuleLoadEvent2

Erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugOutputStringEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugProgramCreateEvent2

Erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugProgramDestroyEvent2

Erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugPropertyCreateEvent2

Erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugPropertyDestroyEvent2

Erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugReturnValueEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugStopCompleteEvent2

Erforderlich

Erforderlich

Ja

IDebugStepCompleteEvent2

Erforderlich

Erforderlich

Ja

IDebugSymbolSearchEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Nein

IDebugThreadCreateEvent2

Erforderlich

Erforderlich

Nein

IDebugThreadDestroyEvent2

Erforderlich

Erforderlich

Nein

IDebugThreadNameChangedEvent2

Zulässige, aber nicht erforderlich

Zulässige, aber nicht erforderlich

Nein

Siehe auch

Konzepte

Senden von Ereignissen