Impostazione di punti di interruzione

I punti di interruzione vengono creati con il metodo AddBreakpoint . Questo metodo crea un oggetto IDebugBreakpoint che rappresenta il punto di interruzione. Imposta anche il tipo di punto di interruzione (punto di interruzione software o punto di interruzione del processore). Dopo aver creato un punto di interruzione, il tipo non può essere modificato.

I punti di interruzione vengono eliminati con il metodo RemoveBreakpoint . In questo modo viene eliminato anche l'oggetto IDebugBreakpoint ; Questo oggetto non può essere usato di nuovo.

Nota Anche se IDebugBreakpoint implementa l'interfaccia IUnknown , i metodi IUnknown::AddRef e IUnknown::Release non vengono usati per controllare la durata del punto di interruzione. Questi metodi non hanno alcun effetto sulla durata del punto di interruzione. Al contrario, un oggetto IDebugBreakpoint viene eliminato dopo la chiamata al metodo RemoveBreakpoint .

Quando viene creato il punto di interruzione, viene assegnato un ID punto di interruzione univoco. Questo identificatore non cambierà. Tuttavia, dopo l'eliminazione del punto di interruzione, il relativo ID può essere usato per un altro punto di interruzione. Per informazioni dettagliate su come ricevere la notifica della rimozione di un punto di interruzione, vedere Monitoraggio degli eventi.

Quando viene creato un punto di interruzione, viene inizialmente disabilitato; ciò significa che non causerà l'arresto dell'esecuzione della destinazione. Questo punto di interruzione può essere abilitato usando il metodo AddFlags per aggiungere il flag DEBUG_BREAKPOINT_ENABLED.

Quando un punto di interruzione viene creato per la prima volta, ha la posizione di memoria 0x00000000 associata. La posizione può essere modificata usando SetOffset con un indirizzo o tramite SetOffsetExpression con un'espressione simbolica. La posizione del punto di interruzione deve essere modificata rispetto al valore iniziale prima che venga usata.