DkmPendingBreakpoint Klasse

Definition

High-Level-Breakpoint-Objekt, das an ein Konstrukt auf Benutzerebene (z. B. Quelldatei, Funktionsname) gebunden ist, das null oder mehr Konstrukte auf Codeebene (DkmBoundBreakpoint) zugeordnet und im Laufe der Zeit nachverfolgt werden kann.

Abgeleitete Klassen: 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
Vererbung
DkmPendingBreakpoint
Vererbung
DkmPendingBreakpoint
Abgeleitet
Attribute
Implementiert

Eigenschaften

CompilerId

Gibt die Quellsprache (z. B. C#) und den Compileranbieter (z. B. Microsoft) an, an die der Haltepunkt gebunden werden soll. "LanguageId" kann als Guid.Empty belassen werden, um anzugeben, dass der Haltepunkt an alle Sprachen gebunden werden soll. "VendorId" wird fast immer als Guid.Empty belassen, was angibt, dass nur die Sprache bekannt ist (nicht der Compiler).

IsBarrier

Gibt an, ob dieser Haltepunkt eine Barriere ist, die für die Hardware festgelegt werden soll. Dies funktioniert für das GPU-Debuggen.

IsUnloaded

Gibt true zurück, wenn ein "unloaded"-Ereignis für dieses Objekt ausgelöst wurde (Beispiel: DkmThread::Unload wird aufgerufen) oder wenn das Objekt geschlossen wurde. Beachten Sie, dass beim Überprüfen dieser status sorgfältig darauf geachtet werden muss, dass die zurückgegebene status nach dem Lesen möglicherweise nicht mehr korrekt ist.

(Geerbt von DkmDataContainer)
Process

DkmProcess stellt einen Zielprozess dar, der debuggt wird. Der Debugger debuggt Prozesse, sodass dies die grundlegende Debugeinheit ist. Ein DkmProcess kann einen Systemprozess oder einen virtuellen Prozess wie Minidumps darstellen.

SourceId

Identifiziert die Quelle eines Objekts. SourceIds werden verwendet, um die Filterung in Szenarien zu aktivieren, in denen mehrere Komponenten Instanzen einer Klasse erstellen können. Beispielsweise können Quell-IDs verwendet werden, um zu bestimmen, ob ein Haltepunkt aus dem AD7 AL stammt (z. B. Benutzerhaltepunkt oder ein anderer Haltepunkt, der auf SDM-Ebene sichtbar ist) anstelle eines Haltepunkts, der von einer anderen Komponente erstellt werden kann (z. B. einem internen Haltepunkt, der zum Springen verwendet wird).

TagValue

DkmPendingBreakpoint ist eine abstrakte Basisklasse. Diese Enumeration gibt an, welche abgeleitete Klasse dieses Objekt instance ist.

Thread

[Optional] Thread, für den dieser Haltepunkt ausgelöst werden soll. Wenn null, wird der Haltepunkt für alle Threads ausgelöst.

UniqueId

Guid, die dieses ausstehende Breakpointobjekt eindeutig identifiziert.

Methoden

Close()

Schließt ein DkmPendingBreakpoint-Objekt instance. Dadurch werden alle Ressourcen freigegeben, die diesem Objekt für alle Komponenten zugeordnet sind. Dies schließt Ressourcen über Computer- oder verwaltete/native Marshallinggrenzen hinweg ein.

DkmPendingBreakpoint-Objekte werden automatisch geschlossen, wenn das zugeordnete DkmProcess-Objekt geschlossen wird.

Diese Methode kann nur von der Komponente aufgerufen werden, die das Objekt erstellt hat.

Disable(DkmWorkList, DkmCompletionRoutine<DkmDisablePendingBreakpointAsyncResult>)

Deaktivieren Sie das ausstehende Breakpointobjekt, damit es nicht mehr ausgelöst wird. Wenn der ausstehende Haltepunkt bereits gebunden ist, werden alle gebundenen Haltepunkte implizit deaktiviert.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Enable(DkmWorkList, DkmCompletionRoutine<DkmEnablePendingBreakpointAsyncResult>)

Legt den Status des ausstehenden Haltepunkts fest, sodass Instanzen des Haltepunkts, die in Zukunft gebunden werden, erreicht werden. Wenn der ausstehende Haltepunkt noch nicht registriert ist, registriert diese Methode auch den Haltepunkt. Das Registrieren eines ausstehenden Haltepunkts besteht aus dem Versuch, den Haltepunkt für alle derzeit geladenen Module aufzulösen und den Haltepunkt der Liste der Haltepunkte hinzuzufügen, die der Haltepunkt-Manager bei jeder Modulauslastung bindet. Wenn der ausstehende Haltepunkt bereits registriert ist, werden vorhandene gebundene Haltepunkte nicht automatisch aktiviert. Gebundene Haltepunkte müssen separat aktiviert werden.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Enroll(DkmWorkList, DkmCompletionRoutine<DkmEnrollPendingBreakpointAsyncResult>)

Diese Methode registriert den ausstehenden Haltepunkt, ohne ihn zu aktivieren. Das Ergebnis ist ein Haltepunkt, den der Haltepunkt-Manager aufzulösen versucht, der aber nicht ausgelöst wird. Das Registrieren eines ausstehenden Haltepunkts besteht aus dem Versuch, den Haltepunkt für alle derzeit geladenen Module aufzulösen und den Haltepunkt der Liste der Haltepunkte hinzuzufügen, die der Haltepunkt-Manager bei jeder Modulauslastung bindet.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

GetBoundBreakpoints()

GetBoundBreakpoints listet die DkmBoundBreakpoint-Elemente dieses DkmPendingBreakpoint-Objekts auf.

GetDataItem<T>()

Ruft den instance von "T" ab, der diesem Container instance hinzugefügt wurde. Wenn dieser Container kein "T" enthält, gibt diese Funktion NULL zurück.

(Geerbt von DkmDataContainer)
OnBreakpointBound(DkmBoundBreakpoint[])

Benachrichtigung vom Haltepunkt-Manager, wenn ein Haltepunkt gebunden wurde. Bei benutzerseitig festgelegten Haltepunkten wird diese Benachrichtigung an die AD7 AL gesendet, und die AD7 AL löst ein IDebugBreakpointBoundEvent2 auf der Benutzeroberfläche des Visual Studio-Debuggers aus.

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, Byte, String)

Benachrichtigung des Haltepunkt-Managers über die status der Bindung des Haltepunkts.

Diese API wurde in Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) eingeführt.

OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, String)

Benachrichtigung des Haltepunkt-Managers über die status der Bindung des Haltepunkts.

Diese API wurde in Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) eingeführt.

OnBreakpointMessage(DkmBreakpointMessageLevel, String)

Benachrichtigung des Haltepunkt-Managers über die status der Bindung des Haltepunkts.

OnBreakpointUnbound(DkmBoundBreakpoint[], DkmBreakpointUnboundReason)

Benachrichtigung vom Haltepunkt-Manager, die angibt, dass der angegebene Haltepunkt nicht gebunden wird.

OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

Auslösen eines BreakpointHitWithError-Ereignisses. Komponenten, die die Ereignissenkenschnittstelle implementieren, erhalten die Ereignisbenachrichtigung. Diese Methode wird das Ereignis in die Warteschlange stellen, und das Steuerelement wird sofort an den Aufrufer zurückgegeben.

Diese API wurde in Visual Studio 16 RTM (DkmApiVersion.VS16RTM) eingeführt.

RemoveDataItem<T>()

Entfernen Sie den instance von "T" aus diesem Container. Es ist in der Regel nicht erforderlich, diese Methode aufzurufen, da ein Datencontainer automatisch geleert wird, wenn das Objekt geschlossen wird.

(Geerbt von DkmDataContainer)
SetCondition(DkmWorkList, DkmBreakpointCondition, DkmCompletionRoutine<DkmSetPendingBreakpointConditionAsyncResult>)

Initialisieren, aktualisieren oder löschen Sie die Bedingung auf Sprachebene für alle gebundenen Haltepunkte dieses Bedingungshaltepunkts. Wenn derselbe Haltepunkt sowohl über eine Bedingung auf Sprachebene als auch über eine Trefferanzahl verfügt, wird zuerst die Bedingung auf Sprachebene angewendet.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

SetDataItem<T>(DkmDataCreationDisposition, T)

Platzieren Sie ein neues Element im Datencontainer.

(Geerbt von DkmDataContainer)
SetHitCountCondition(DkmWorkList, DkmBreakpointHitCountCondition, DkmCompletionRoutine<DkmSetPendingBreakpointHitCountConditionAsyncResult>)

Initialisieren, Aktualisieren oder Löschen der Trefferanzahlbedingung für alle gebundenen Haltepunkte dieses ausstehenden Haltepunkts. Wenn derselbe Haltepunkt sowohl über eine Bedingung auf Sprachebene als auch über eine Trefferanzahl verfügt, wird zuerst die Bedingung auf Sprachebene angewendet.

Beachten Sie, dass die Bedingung für die Trefferanzahl unabhängig auf jedem gebundenen Haltepunkt agiert, anstatt zusammen auf dem ausstehenden Haltepunkt aggregiert zu werden. Wenn z. B. die Trefferanzahl so konfiguriert ist, dass sie bei Treffer #2 beendet wird, und der Haltepunkt an zwei separaten Speicherorten, von denen jeder einmal auf den Haltepunkt trifft, ist die Benutzeroberfläche immer noch nicht in den Unterbrechungsmodus gewechselt, da keiner der einzelnen gebundenen Haltepunkte zweimal getroffen hat.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, sobald das Arbeitselement angefügt wurde. Die tatsächliche Verarbeitung des Arbeitselements erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Vervollständigungsroutine abgeschlossen ist.

Standorteinschränkung: Die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

High-Level-Breakpoint-Objekt, das an ein Konstrukt auf Benutzerebene (z. B. Quelldatei, Funktionsname) gebunden ist, das null oder mehr Konstrukte auf Codeebene (DkmBoundBreakpoint) zugeordnet und im Laufe der Zeit nachverfolgt werden kann.

Abgeleitete Klassen: DkmPendingAddressBreakpoint, DkmPendingAddressNameBreakpoint, DkmPendingDataBreakpoint, DkmPendingFileLineBreakpoint, DkmPendingFunctionBreakpoint

Gilt für: