Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un punto di interruzione è una posizione nel codice eseguibile in cui il sistema operativo arresta l'esecuzione ed entra nel debugger. In questo modo è possibile analizzare la destinazione e rilasciare i comandi del debugger.
È possibile specificare il percorso di un punto di interruzione in base all'indirizzo virtuale, agli offset di modulo e routine oppure al file di origine e al numero di riga (in modalità di origine). Se si inserisce un punto di interruzione in una routine senza offset, il punto di interruzione viene attivato quando tale routine viene immessa.
Esistono diversi tipi aggiuntivi di punti di interruzione:
Un punto di interruzione può essere associato a un determinato thread.
Un punto di interruzione può abilitare un numero fisso di passaggi su un indirizzo prima che venga attivato.
Un punto di interruzione può eseguire automaticamente determinati comandi quando viene attivato.
Un punto di interruzione può essere impostato sulla memoria non eseguibile per monitorare quando quella posizione viene letta o scritta.
Se si esegue il debug di più processi in modalità utente, la raccolta di punti di interruzione dipende dal processo corrente. Per visualizzare o modificare i punti di interruzione di un processo, è necessario selezionare il processo come processo corrente. Per altre informazioni sul processo corrente, vedere Controllo di processi e thread.
Comandi del debugger per il controllo e la visualizzazione di punti di interruzione
Per controllare o visualizzare punti di interruzione, è possibile utilizzare i metodi seguenti:
Usare il comando bl (Elenco punti di interruzione) per elencare i punti di interruzione esistenti e il relativo stato corrente.
Usare il comando bpcmds (Visualizza Comandi Breakpoint) per elencare tutti i punti di interruzione insieme ai comandi usati per crearli.
Usare il comando bp (Imposta punto di interruzione) per impostare un nuovo punto di interruzione.
Usare il comando bu (Imposta punto di interruzione non risolto) per impostare un nuovo punto di interruzione. I punti di interruzione impostati con bu vengono chiamati punti di interruzione non risolti; hanno caratteristiche diverse rispetto ai punti di interruzione impostati con bp. Per dettagli completi, vedere Punti di interruzione non risolti (bu Breakpoints).
Usare il comando bm (Imposta punto di interruzione dei simboli) per impostare nuovi punti di interruzione sui simboli che corrispondono a un criterio specificato. Un punto di interruzione impostato con bm verrà associato a un indirizzo (ad esempio un punto di interruzione bp ) se l'opzione /d è inclusa; non sarà risolto (ad esempio un punto di interruzione bu ) se questa opzione non è inclusa.
Usare il comando ba (Break on Access) per impostare un punto di interruzione del processore, noto anche come punto di interruzione dei dati. Questi punti di interruzione possono essere attivati quando la posizione di memoria viene scritta, quando viene letta, quando viene eseguita come codice o quando si verifica l'I/O del kernel. Per dettagli completi, vedere Punti di interruzione processore (ba Breakpoints).
Usare il comando bc (Cancella punto di interruzione) per rimuovere definitivamente uno o più punti di interruzione.
Usare il comando bd (Disabilita punto di interruzione) per disabilitare temporaneamente uno o più punti di interruzione.
Usare il comando be (Abilita punto di interruzione) per riabilitare uno o più punti di interruzione disabilitati.
Usare il comando br (Rinumerazione punto di interruzione) per modificare l'ID di un punto di interruzione esistente.
Usare il comando bs (Update Breakpoint Command) per modificare il comando associato a un punto di interruzione esistente.
Usare il comando bsc (Aggiorna punto di interruzione condizionale) per modificare la condizione in cui si verifica un punto di interruzione condizionale esistente.
In WinDbg sono disponibili diversi elementi dell'interfaccia utente che facilitano il controllo e la visualizzazione dei punti di interruzione. Vedere Impostazione dei punti di interruzione in WinDbg (versione classica).
A ogni punto di interruzione è associato un numero decimale denominato ID punto di interruzione. Questo numero identifica il punto di interruzione in vari comandi.
Comandi del punto di interruzione
È possibile includere un comando in un punto di interruzione che viene eseguito automaticamente quando viene raggiunto il punto di interruzione. Ad esempio, il comando seguente si interrompe in MyFunction+0x47, scrive un file di dump e quindi riprende l'esecuzione.
0:000> bu MyFunction+0x47 ".dump c:\mydump.dmp; g"
Nota Se si controlla il debugger in modalità utente dal debugger del kernel, non usare g (Go) nella stringa di comando del punto di interruzione. L'interfaccia seriale potrebbe non essere in grado di rimanere al passo con questo comando e non sarà possibile eseguire il breakback in CDB. Per altre informazioni su questa situazione, vedere Controllo del debugger User-Mode dal debugger del kernel.
Numero di punti di interruzione
In modalità kernel, è possibile usare un massimo di 32 punti di interruzione software. In modalità utente è possibile usare un numero qualsiasi di punti di interruzione software.
Il numero di punti di interruzione del processore supportati dipende dall'architettura del processore di destinazione.
Punti di interruzione condizionali
È possibile impostare un punto di interruzione attivato solo in determinate condizioni. Per altre informazioni su questi tipi di punti di interruzione, vedere Impostazione di un punto di interruzione condizionale.
Punti di interruzione ambigui
Nella versione 10.0.25310.1001 e successive del motore del debugger è ora supportata la risoluzione ambigua dei punti di interruzione. I punti di interruzione ambigui consentono al debugger di impostare punti di interruzione in determinati scenari in cui un'espressione del punto di interruzione viene risolta in più posizioni. Per altre informazioni, vedere Risoluzione ambigua dei punti di interruzione.
Vedere anche
Sintassi del punto di interruzione
bp, bu, bm (Imposta punto di interruzione)
Punti di interruzione non risolti (punti di interruzione bu)