Modalità operative
Esistono tre modalità in cui l'IDE può funzionare, come indicato di seguito:
-
La modalità di transizione del motore di debug personalizzato tra queste modalità è una decisione di implementazione che richiede di avere familiarità con i meccanismi di transizione. De può o non implementare direttamente queste modalità. Queste modalità sono in realtà modalità di debug del pacchetto che cambiano in base all'azione dell'utente o agli eventi da DE. Ad esempio, la transizione dalla modalità di esecuzione alla modalità di interruzione viene attivata da un evento di arresto da DE. La transizione dall'interruzione alla modalità di esecuzione o alla modalità passaggio viene attivata dall'utente che esegue operazioni come Step o Execute. Per altre informazioni sulle transizioni DE, vedere Controllo dell'esecuzione.
Modalità progettazione
La modalità progettazione è lo stato non di esecuzione del debug di Visual Studio, durante il quale è possibile impostare le funzionalità di debug nell'applicazione.
Durante la modalità progettazione vengono usate solo alcune funzionalità di debug. Uno sviluppatore può scegliere di impostare punti di interruzione o creare espressioni di controllo. De non viene mai caricato o chiamato mentre l'IDE è in modalità progettazione. L'interazione con DE avviene solo durante l'esecuzione e le modalità di interruzione.
Modalità di esecuzione
La modalità di esecuzione si verifica quando un programma viene eseguito in una sessione di debug nell'IDE. L'applicazione viene eseguita fino alla terminazione, fino a quando non viene raggiunto un punto di interruzione o fino a quando non viene generata un'eccezione. Quando l'applicazione viene eseguita fino alla terminazione, l'applicazione passa alla modalità progettazione. Quando viene raggiunto un punto di interruzione o viene generata un'eccezione, la de passa alla modalità di interruzione.
Modalità di interruzione
La modalità di interruzione si verifica quando l'esecuzione del programma di debug viene sospesa. La modalità di interruzione offre allo sviluppatore uno snapshot dell'applicazione al momento dell'interruzione e consente allo sviluppatore di analizzare lo stato dell'applicazione e modificare la modalità di esecuzione dell'applicazione. Lo sviluppatore può visualizzare e modificare il codice, esaminare o modificare i dati, riavviare l'applicazione, terminare l'esecuzione o continuare l'esecuzione dallo stesso punto.
La modalità di interruzione viene attivata quando de invia un evento di arresto sincrono. Gli eventi di arresto sincrono, chiamati anche eventi di arresto, notificano al gestore di debug della sessione (SDM) e all'IDE che l'applicazione sottoposta a debug ha interrotto l'esecuzione del codice. Le interfacce IDebugBreakpointEvent2 e IDebugExceptionEvent2 sono esempi di eventi di arresto.
Gli eventi di arresto vengono continuati da una chiamata a uno dei metodi seguenti, che passano il debugger dalla modalità di interruzione alla modalità di esecuzione o passaggio:
Modalità passaggio
La modalità passaggio si verifica quando i passaggi del programma alla riga di codice successiva, o in, oltre o fuori da una funzione. Un passaggio viene eseguito chiamando il metodo Step. Questo metodo richiede DWORD
che specifichino le enumerazioni STEPUNIT e STEPKIND come parametri di input.
Quando il programma esegue correttamente i passaggi alla riga di codice successiva o in una funzione oppure viene eseguito al cursore o a un punto di interruzione impostato, l'istruzione DE esegue automaticamente il passaggio alla modalità di interruzione.