Condividi tramite


DkmPendingBreakpoint Classe

Definizione

Oggetto punto di interruzione di alto livello associato a un costrutto a livello di utente (ad esempio, file di origine, nome funzione) che può eseguire il mapping a zero o più costrutti a livello di codice (DkmBoundBreakpoint) e che possono essere rilevati nel tempo.

Classi derivate: DkmPendingAddressBreakpoint, DkmPendingAddressNameBreakpoint, DkmPendingDataBreakpoint, DkmPendingFileLineBreakpoint, DkmPendingFunctionBreakpoint

public ref class DkmPendingBreakpoint abstract : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("c9e1ffa4-f943-14bc-5566-00a802dfc66f")]
public abstract class DkmPendingBreakpoint : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("c9e1ffa4-f943-14bc-5566-00a802dfc66f")>]
type DkmPendingBreakpoint = class
    inherit DkmDataContainer
    interface IDisposable
Public MustInherit Class DkmPendingBreakpoint
Inherits DkmDataContainer
Implements IDisposable
Ereditarietà
DkmPendingBreakpoint
Ereditarietà
DkmPendingBreakpoint
Derivato
Attributi
Implementazioni

Proprietà

CompilerId

Identifica il linguaggio di origine (ad esempio: C#) e il fornitore del compilatore (ad esempio: Microsoft) a cui deve essere associato il punto di interruzione. 'LanguageId' può essere lasciato come Guid.Empty per indicare che il punto di interruzione deve essere associato a tutte le lingue. 'VendorId' è quasi sempre lasciato come Guid.Empty, che indica che solo il linguaggio è noto (non il compilatore).

IsBarrier

Indica se questo punto di interruzione è una barriera che deve essere impostata sull'hardware, questo funziona per il debug della GPU.

IsUnloaded

Restituisce true se viene generato un evento "non caricato" per questo oggetto (ad esempio: DkmThread::Unload viene chiamato) o se l'oggetto è stato chiuso. Si noti che è necessario usare attenzione quando si controlla questo stato come, senza sincronizzazione, lo stato restituito potrebbe non essere più accurato dopo la lettura.

(Ereditato da DkmDataContainer)
Process

DkmProcess rappresenta un processo di destinazione in fase di debug. Il debugger esegue il debug dei processi, quindi questa è l'unità di base del debug. Un DkmProcess può rappresentare un processo di sistema o un processo virtuale, ad esempio minidump.

SourceId

Identifica l'origine di un oggetto. Gli id di origine vengono usati per abilitare il filtro negli scenari in cui più componenti possono creare istanze di una classe. Ad esempio, gli ID di origine possono essere usati per determinare se un punto di interruzione proviene da AD7 AL (ad esempio: punto di interruzione utente o altro punto di interruzione visibile a livello di SDM) anziché un punto di interruzione che può essere creato da un altro componente (ad esempio un punto di interruzione interno usato per l'esecuzione dell'istruzione).

TagValue

DkmPendingBreakpoint è una classe base astratta. Questa enumerazione indica la classe derivata di questo oggetto è un'istanza di .

Thread

[Facoltativo] Thread su cui deve essere attivato questo punto di interruzione. Se null, il punto di interruzione verrà generato su tutti i thread.

UniqueId

Guid che identifica in modo univoco questo oggetto punto di interruzione in sospeso.

Metodi

Close()

Chiude un'istanza dell'oggetto DkmPendingBreakpoint. Verrà rilasciata qualsiasi risorsa associata a questo oggetto in tutti i componenti. Sono incluse risorse tra i limiti di marshalling gestito o gestito/nativo.

Gli oggetti DkmPendingBreakpoint vengono chiusi automaticamente quando l'oggetto DkmProcess associato viene chiuso.

Questo metodo può essere chiamato solo dal componente che ha creato l'oggetto.

Disable(DkmWorkList, DkmCompletionRoutine<DkmDisablePendingBreakpointAsyncResult>)

Disabilitare l'oggetto punto di interruzione in sospeso in modo che non venga più attivato. Se il punto di interruzione in sospeso è già associato, eventuali punti di interruzione associati verranno disabilitati in modo implicito.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Enable(DkmWorkList, DkmCompletionRoutine<DkmEnablePendingBreakpointAsyncResult>)

Imposta lo stato del punto di interruzione in sospeso in modo che le istanze del punto di interruzione che si associano in futuro vengano colpite. Se il punto di interruzione in sospeso non è ancora registrato, questo metodo registra anche il punto di interruzione. La registrazione di un punto di interruzione in sospeso consiste nel tentativo di risolvere il punto di interruzione rispetto a tutti i moduli attualmente caricati e l'aggiunta del punto di interruzione all'elenco dei punti di interruzione a cui verrà associata la gestione punti di interruzione su qualsiasi carico del modulo. Se il punto di interruzione in sospeso è già registrato, i punti di interruzione associati esistenti non verranno abilitati automaticamente. I punti di interruzione associati devono essere abilitati separatamente.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Enroll(DkmWorkList, DkmCompletionRoutine<DkmEnrollPendingBreakpointAsyncResult>)

Questo metodo registra il punto di interruzione in sospeso senza abilitarlo. Il risultato è un punto di interruzione che il gestore del punto di interruzione tenterà di risolvere, ma che non verrà generato. La registrazione di un punto di interruzione in sospeso consiste nel tentativo di risolvere il punto di interruzione rispetto a tutti i moduli attualmente caricati e l'aggiunta del punto di interruzione all'elenco dei punti di interruzione a cui verrà associata la gestione punti di interruzione su qualsiasi carico del modulo.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

GetBoundBreakpoints()

GetBoundBreakpoints enumera gli elementi DkmBoundBreakpoint di questo oggetto DkmPendingBreakpoint.

GetDataItem<T>()

Ottiene l'istanza di 'T' che è stata aggiunta a questa istanza del contenitore. Se questo contenitore non contiene un 'T', questa funzione restituirà Null.

(Ereditato da DkmDataContainer)
OnBreakpointBound(DkmBoundBreakpoint[])

Notifica dal gestore del punto di interruzione quando è stato associato un punto di interruzione. Nel caso di punti di interruzione impostati dall'utente, questa notifica verrà inviata a AD7 AL e ad AD7 AL verrà generato un IDebugBreakpointBoundEvent2 nell'interfaccia utente del debugger di Visual Studio.

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, Byte, String)

Notifica dal gestore del punto di interruzione relativo allo stato dell'associazione del punto di interruzione.

Questa API è stata introdotta in Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6).

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, String)

Notifica dal gestore del punto di interruzione relativo allo stato dell'associazione del punto di interruzione.

Questa API è stata introdotta in Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4).

OnBreakpointMessage(DkmBreakpointMessageLevel, String)

Notifica dal gestore del punto di interruzione relativo allo stato dell'associazione del punto di interruzione.

OnBreakpointUnbound(DkmBoundBreakpoint[], DkmBreakpointUnboundReason)

Notifica dal gestore del punto di interruzione che indica che il punto di interruzione specificato non è in uscita.

OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

Generare un evento BreakpointHitWithError. I componenti che implementano l'interfaccia del sink di eventi riceveranno la notifica dell'evento. Questo metodo eseguirà la sequenza dell'evento e del controllo restituirà immediatamente al chiamante.

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

RemoveDataItem<T>()

Rimuovere l'istanza di 'T' da questo contenitore. In genere non è necessario chiamare questo metodo come contenitore di dati verrà svuotato automaticamente quando l'oggetto viene chiuso.

(Ereditato da DkmDataContainer)
SetCondition(DkmWorkList, DkmBreakpointCondition, DkmCompletionRoutine<DkmSetPendingBreakpointConditionAsyncResult>)

Inizializzare, aggiornare o cancellare la condizione a livello di lingua in tutti i punti di interruzione associati di questo punto di interruzione della condizione. Se lo stesso punto di interruzione ha una condizione a livello di lingua e una condizione di conteggio dei risultati, viene applicata prima la condizione a livello di lingua.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

SetDataItem<T>(DkmDataCreationDisposition, T)

Inserire un nuovo elemento nel contenitore dati.

(Ereditato da DkmDataContainer)
SetHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, DkmCompletionRoutine<DkmSetPendingBreakpointHitCountConditionAsyncResult>)

Inizializzare, aggiornare o cancellare la condizione del conteggio dei colpi in tutti i punti di interruzione associati di questo punto di interruzione in sospeso. Se lo stesso punto di interruzione ha una condizione a livello di lingua e una condizione di conteggio dei risultati, viene applicata prima la condizione a livello di lingua.

Si noti che la condizione del conteggio degli hit agisce in modo indipendente su ogni punto di interruzione associato, anziché essere aggregato insieme nel punto di interruzione in sospeso. Ad esempio, se il conteggio dei colpi è configurato per arrestarsi al hit #2 e il punto di interruzione in due posizioni separate, ognuna delle quali ha raggiunto il punto di interruzione una volta, l'interfaccia utente non sarà ancora entrata in modalità di interruzione perché nessuno dei singoli punti di interruzione ha raggiunto due volte.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Oggetto punto di interruzione di alto livello associato a un costrutto a livello di utente (ad esempio, file di origine, nome funzione) che può eseguire il mapping a zero o più costrutti a livello di codice (DkmBoundBreakpoint) e che possono essere rilevati nel tempo.

Classi derivate: DkmPendingAddressBreakpoint, DkmPendingAddressNameBreakpoint, DkmPendingDataBreakpoint, DkmPendingFileLineBreakpoint, DkmPendingFunctionBreakpoint

Si applica a