Eventi

Il motore del debugger offre funzionalità per il monitoraggio e la risposta agli eventi nella destinazione. Quando si verifica un evento, il motore sospende la destinazione (spesso solo brevemente), quindi notifica a tutti i client dell'evento, chi a sua volta indica al motore come deve procedere l'esecuzione nella destinazione.

Per notificare a un client un evento, il motore chiama l'oggetto callback dell'evento registrato con il client. Il motore fornisce a ogni callback eventi i dettagli dell'evento e il callback dell'evento indica al motore come deve procedere l'esecuzione nella destinazione. Quando i callback di eventi diversi forniscono istruzioni in conflitto, il motore agisce sull'istruzione con la precedenza più alta (vedere DEBUG_STATUS_XXX), che in genere significa scegliere l'istruzione che comporta la meno esecuzione della destinazione.

Nota Mentre il callback dell'evento gestisce l'evento, la destinazione viene sospesa e la sessione di debug è accessibile; Tuttavia, poiché il motore era in attesa di un evento, in modo esplicito durante una chiamata WaitForEvent o in modo implicito eseguendo un comando come g (Go) o p (passaggio), il callback dell'evento non può chiamare WaitForEvent e se tenta di eseguire qualsiasi comando che provocherebbe l'esecuzione del debugger, ad esempio g (Go) o p (Passaggio), il motore interpreterà questi comandi come istruzioni su come procedere.

Filtri eventi

Il motore del debugger fornisce anche filtri eventi, che rappresentano un'alternativa più semplice per il monitoraggio degli eventi di base. I filtri eventi forniscono alcune semplici regole che specificano se un evento deve essere stampato nel flusso di output del debugger o se eseguire l'interruzione nel debugger. Possono essere usati anche per eseguire i comandi del debugger quando si verifica un evento.

Informazioni aggiuntive

Per informazioni dettagliate sul monitoraggio degli eventi, vedere Monitoraggio degli eventi.