Tipi di eventi supportati
Visual Studio che esegue il debug attualmente sono supportati i seguenti tipi di evento:
eventi asincroni
Informare l'amministratore (SDM) di debug della sessione e l'ide che lo stato dell'applicazione sottoposta a debug viene modificato. Questi eventi vengono elaborati allo svago di SDM e dell'IDE. Non viene ricevuta alcuna risposta inviata al (DE) motore di debug una volta che viene elaborato. IDebugOutputStringEvent2 Le interfacce e IDebugMessageEvent2 sono esempi di eventi asincroni.
eventi sincroni
Informare lo SDM e l'ide che lo stato dell'applicazione sottoposta a debug viene modificato. L'unica differenza tra questi eventi e gli eventi asincroni è che la risposta inviata tramite il metodo IDebugEngine2:: ContinueFromSynchronousEvent .
Inviare un evento sincrono è utile se è necessario un DE di continuare a sviluppare dopo l'ide si riceve ed elabora l'evento.
Eventi sincroni, arrestare o interrompere gli eventi
Informare lo SDM e l'ide che l'applicazione di cui si esegue il debug della chiusura del codice. Quando si invia un evento bloccato utilizzando il metodo IDebugEventCallback2:: evento, IDebugThread2 il parametro è obbligatoria. Arrestando gli eventi sono ha proseguito fino da una chiamata a quella dei metodi seguenti:
Le interfacce IDebugBreakpointEvent2 e IDebugExceptionEvent2 sono esempi di eventi di arresto.
Nota
gli eventi arrestare asincroni non sono supportati.È un errore per inviare un evento bloccato asincrono.
Descrizione
Dell'implementazione effettiva degli eventi dipende dalla progettazione di DE. Il tipo di ogni evento inviato è determinato dai relativi attributi, che vengono impostati quando si progetta il DE. Ad esempio, un DE possibile inviare IDebugProgramCreateEvent2 come evento asincrono, mentre un altro può inviarlo come evento bloccato.
Nella tabella seguente vengono specificati che programmano e parametri del thread al quale eventi di necessari nonché tipi di evento. Qualsiasi evento può essere sincrono. nessun evento deve essere sincrono.
Nota
IDebugEngine2 l'interfaccia è obbligatoria per tutti gli eventi.
Evento |
IDebugProgram2 |
IDebugThread2 |
Arrestare gli eventi |
---|---|---|---|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
No |
|
Obbligatorio |
Obbligatorio |
Sì |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
No |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
No |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
No |
|
Obbligatorio |
Obbligatorio |
Sì |
|
Obbligatorio |
Obbligatorio |
No |
|
Non consentito |
Non consentito |
No |
|
Non consentito |
Non consentito |
No |
|
Obbligatorio |
Obbligatorio |
Sì |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
può essere |
|
Obbligatorio |
Obbligatorio |
Sì |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
può essere |
|
Obbligatorio |
Obbligatorio |
Sì |
|
Obbligatorio |
Obbligatorio |
Sì |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
può essere |
|
Obbligatorio |
concedere, ma non obbligatorio |
No |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
No |
|
Obbligatorio |
concedere, ma non obbligatorio |
No |
|
Obbligatorio |
concedere, ma non obbligatorio |
No |
|
Obbligatorio |
concedere, ma non obbligatorio |
No |
|
Obbligatorio |
concedere, ma non obbligatorio |
No |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
No |
|
IDebugStopCompleteEvent2 |
Obbligatorio |
Obbligatorio |
Sì |
Obbligatorio |
Obbligatorio |
Sì |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
No |
|
Obbligatorio |
Obbligatorio |
No |
|
Obbligatorio |
Obbligatorio |
No |
|
concedere, ma non obbligatorio |
concedere, ma non obbligatorio |
No |