Metodi di controllo dei punti di interruzione
È 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 viene immessa tale routine.
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 attraverso un indirizzo prima che venga attivato.
Un punto di interruzione può eseguire automaticamente determinati comandi quando viene attivato.
È possibile impostare un punto di interruzione sulla memoria non eseguibile e watch affinché tale posizione venga letta o scritta in .
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 del punto di interruzione) 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 informazioni dettagliate complete, vedere Punti di interruzione non risolti (punti di interruzione bu).For complete details, see Unresolved Breakpoints (bu Breakpoints).
Usare il comando bm (Imposta punto di interruzione 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 il percorso di memoria viene scritto in, quando viene letto, quando viene eseguito come codice o quando si verifica l'I/O del kernel. Per informazioni dettagliate complete, vedere Punti di interruzione del processore (ba Punti di interruzione).For complete details, see Processor Breakpoints (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 (Renumber punto di interruzione) per modificare l'ID di un punto di interruzione esistente.
Usare il comando bs (comando Aggiorna punto di interruzione) 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 dei punti 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 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 mantenere il passo con questo comando e non sarà possibile eseguire nuovamente 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 qualsiasi numero 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.
Vedi anche
Sintassi dei punti di interruzione
bp, bu, bm (Imposta punto di interruzione)
Punti di interruzione non risolti (punti di interruzione bu)