Types d’événements pris en chargeSupported Event Types

Débogage de Visual Studio prend actuellement en charge les types d’événements suivants :Visual Studio debugging currently supports the following event types:

  • Événements asynchronesAsynchronous events

    Notifier le Gestionnaire de session de débogage (SDM) et IDE qui modifie l’état de l’application en cours de débogage.Notify the session debug manager (SDM) and IDE that the state of the application being debugged is changing. Ces événements sont traités à la convenance du SDM et l’IDE.These events are processed at the leisure of the SDM and the IDE. Aucune réponse n’est envoyée au moteur de débogage (DE) une fois que l’événement est traité.No reply is sent to the debug engine (DE) once the event is processed. Le IDebugOutputStringEvent2 et IDebugMessageEvent2 interfaces sont des exemples d’événements asynchrones.The IDebugOutputStringEvent2 and IDebugMessageEvent2 interfaces are examples of asynchronous events.

  • Événements synchronesSynchronous events

    Informez le SDM et IDE qui modifie l’état de l’application en cours de débogage.Notify the SDM and IDE that the state of the application being debugged is changing. La seule différence entre ces événements et les événements asynchrones est qu’une réponse est envoyée à l’aide de la ContinueFromSynchronousEvent (méthode).The only difference between these events and asynchronous events is that a reply is sent by means of the ContinueFromSynchronousEvent method.

    L’envoi d’un événement synchrone est utile si vous avez besoin de votre DE poursuivre le traitement une fois que l’IDE reçoit et traite l’événement.Sending a synchronous event is useful if you need your DE to continue processing after the IDE receives and processes the event.

  • Les événements d’arrêt synchrones, ou les événements d’arrêtSynchronous stopping events, or stopping events

    Notifier le SDM et l’IDE que l’application en cours de débogage a arrêté l’exécution de code.Notify the SDM and the IDE that the application being debugged has stopped executing code. Lorsque vous envoyez un événement d’arrêt au moyen de la méthode événement, le IDebugThread2 paramètre est obligatoire.When you send a stopping event by means of the method Event, the IDebugThread2 parameter is required. Événements d’arrêt sont maintenues par un appel à l’une des méthodes suivantes :Stopping events are continued by a call to the one of the following methods:

    Note

    Événements d’arrêt asynchrone ne sont pas pris en charge.Asynchronous stopping events are not supported. Il s’agit d’une erreur pour envoyer un événement d’arrêt asynchrone.It is an error to send an asynchronous stopping event.

DiscussionDiscussion

L’implémentation réelle des événements dépend de la conception de votre DE.The actual implementation of events depends on the design of your DE. Le type de chaque événement envoyé est déterminé par ses attributs, qui sont définis lorsque vous concevez le DE.The type of each event sent is determined by its attributes, which are set when you design the DE. Par exemple, un seul DE peut envoyer un IDebugProgramCreateEvent2 comme un événement asynchrone, tandis que l’autre peut l’envoyer en tant qu’un événement d’arrêt.For example, one DE may send an IDebugProgramCreateEvent2 as an asynchronous event, while another may send it as a stopping event.

Le tableau suivant spécifie les paramètres de programme et les threads sont requises pour les événements, ainsi que les types d’événements.The following table specifies which program and thread parameters are required for which events, as well as event types. Les événements peuvent être synchrones.Any event can be synchronous. Aucun événement ne doit être synchrone.No event needs to be synchronous.

Note

Le IDebugEngine2 interface est requise pour tous les événements.The IDebugEngine2 interface is required for all events.

événementEvent IDebugProgram2IDebugProgram2 IDebugThread2IDebugThread2 Les événements d’arrêtStopping Events
IDebugActivateDocumentEvent2IDebugActivateDocumentEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required NonNo
IDebugBreakEvent2IDebugBreakEvent2 ObligatoireRequired ObligatoireRequired OuiYes
IDebugBreakpointBoundEvent2IDebugBreakpointBoundEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required NonNo
IDebugBreakpointErrorEvent2IDebugBreakpointErrorEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required NonNo
IDebugBreakpointUnboundEvent2IDebugBreakpointUnboundEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required NonNo
IDebugBreakpointEvent2IDebugBreakpointEvent2 ObligatoireRequired ObligatoireRequired OuiYes
IDebugCanStopEvent2IDebugCanStopEvent2 ObligatoireRequired ObligatoireRequired NonNo
IDebugDocumentTextEvents2IDebugDocumentTextEvents2 Non autoriséNot allowed Non autoriséNot allowed NonNo
IDebugEngineCreateEvent2IDebugEngineCreateEvent2 Non autoriséNot allowed Non autoriséNot allowed NonNo
IDebugEntryPointEvent2IDebugEntryPointEvent2 ObligatoireRequired ObligatoireRequired OuiYes
IDebugErrorEvent2IDebugErrorEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required Peut êtreCan be
IDebugExceptionEvent2IDebugExceptionEvent2 ObligatoireRequired ObligatoireRequired OuiYes
IDebugExpressionEvaluationCompleteEvent2IDebugExpressionEvaluationCompleteEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required Peut êtreCan be
IDebugInterceptExceptionCompleteEvent2IDebugInterceptExceptionCompleteEvent2 ObligatoireRequired ObligatoireRequired OuiYes
IDebugLoadCompleteEvent2IDebugLoadCompleteEvent2 ObligatoireRequired ObligatoireRequired OuiYes
IDebugMessageEvent2IDebugMessageEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required Peut êtreCan be
IDebugModuleLoadEvent2IDebugModuleLoadEvent2 ObligatoireRequired Autorisée, mais non requisAllowed, but not required NonNo
IDebugOutputStringEvent2IDebugOutputStringEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required NonNo
IDebugProgramCreateEvent2IDebugProgramCreateEvent2 ObligatoireRequired Autorisée, mais non requisAllowed, but not required NonNo
IDebugProgramDestroyEvent2IDebugProgramDestroyEvent2 ObligatoireRequired Autorisée, mais non requisAllowed, but not required NonNo
IDebugPropertyCreateEvent2IDebugPropertyCreateEvent2 ObligatoireRequired Autorisée, mais non requisAllowed, but not required NonNo
IDebugPropertyDestroyEvent2IDebugPropertyDestroyEvent2 ObligatoireRequired Autorisée, mais non requisAllowed, but not required NonNo
IDebugReturnValueEvent2IDebugReturnValueEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required NonNo
IDebugStopCompleteEvent2IDebugStopCompleteEvent2 ObligatoireRequired ObligatoireRequired OuiYes
IDebugStepCompleteEvent2IDebugStepCompleteEvent2 ObligatoireRequired ObligatoireRequired OuiYes
IDebugSymbolSearchEvent2IDebugSymbolSearchEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required NonNo
IDebugThreadCreateEvent2IDebugThreadCreateEvent2 ObligatoireRequired ObligatoireRequired NonNo
IDebugThreadDestroyEvent2IDebugThreadDestroyEvent2 ObligatoireRequired ObligatoireRequired NonNo
IDebugThreadNameChangedEvent2IDebugThreadNameChangedEvent2 Autorisée, mais non requisAllowed, but not required Autorisée, mais non requisAllowed, but not required NonNo

Voir aussiSee Also

Envoi d’événementsSending Events