types pris en charge d'événement
Visual Studio débogage actuellement prend en charge les types suivants d'événement :
événements asynchrones
Indiquez au gestionnaire et IDE (SDM) de débogage de session que l'état de l'application qui est déboguée change. Ces événements sont traités aux souhaitez du SDM et de l'IDE. Absence de réponse n'est envoyée au moteur (DE) de débogage une fois que l'événement est traité. Les interfaces d' IDebugOutputStringEvent2 et d' IDebugMessageEvent2 sont des exemples d'événements asynchrones.
événements synchrones
Indiquez au SDM et l'IDE que l'état de l'application qui est déboguée change. la seule différence entre ces événements et événements asynchrones est qu'une réponse est envoyée au moyen de la méthode d' IDebugEngine2 : : ContinueFromSynchronousEvent
Envoyer un événement synchrone est utile si vous avez besoin de votre De pour poursuivre le traitement après l'IDE reçoit et traite l'événement.
Événements cessants synchrones, ou arrêter des événements
Indiquez au SDM et IDE que l'application est déboguée a cessé d'exécuter le code. Lorsque vous envoyez un événement arrêtant au moyen de la méthode IDebugEventCallback2 : : événement, le paramètre d' IDebugThread2 est requis. Arrêt des événements sont repris par un appel à celui des méthodes suivantes :
Les interfaces IDebugBreakpointEvent2 et IDebugExceptionEvent2 sont des exemples d'événements d'arrêt.
Notes
Les événements cessants asynchrones ne sont pas pris en charge.Il est erroné d'envoyer un événement arrêtant asynchrone.
Discussion
L'implémentation réelle des événements dépend de celle de votre De. Le type de chaque événement envoyé est déterminé par ses attributs, qui sont définis lorsque vous concevez le De. Par exemple, un De peut envoyer IDebugProgramCreateEvent2 en tant qu'événement asynchrone, alors que les autres peuvent envoyer comme un événement arrêtant.
Le tableau suivant spécifie qui programment et il requiert des paramètres de thread pour lesquels les événements, ainsi que l'événement types. Tout événement soit synchrone. aucun événement ne doit être synchrone.
Notes
l'interface d' IDebugEngine2 est requise pour tous les événements.
Événement |
IDebugProgram2 |
IDebugThread2 |
Empêcher les événements |
---|---|---|---|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Obligatoire |
Obligatoire |
Oui |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Obligatoire |
Obligatoire |
Oui |
|
Obligatoire |
Obligatoire |
Non |
|
Non autorisé |
Non autorisé |
Non |
|
Non autorisé |
Non autorisé |
Non |
|
Obligatoire |
Obligatoire |
Oui |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
peut être |
|
Obligatoire |
Obligatoire |
Oui |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
peut être |
|
Obligatoire |
Obligatoire |
Oui |
|
Obligatoire |
Obligatoire |
Oui |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
peut être |
|
Obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
IDebugStopCompleteEvent2 |
Obligatoire |
Obligatoire |
Oui |
Obligatoire |
Obligatoire |
Oui |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
Non |
|
Obligatoire |
Obligatoire |
Non |
|
Obligatoire |
Obligatoire |
Non |
|
Autorisée, mais pas obligatoire |
Autorisée, mais pas obligatoire |
Non |