Freigeben über


DkmPendingAddressBreakpoint Klasse

Definition

Ausstehender Haltepunkt, der zum Binden an eine bestimmte Anweisungsadresse angefordert wird. Innerhalb der IDE werden diese Haltepunkte über das Aufrufstapelfenster, das Disassemblierungsfenster oder durch Eingabe einer Sechskantadresse in den Funktionshaltepunktdialog festgelegt. Da die DkmInstructionAddress als Eingabe angegeben wird, können diese Haltepunkte Runtimes unterstützen, die ihre Adressen nicht in einer Zeichenfolge (z. B. einem Interpreter) beibehalten können.

public ref class DkmPendingAddressBreakpoint : Microsoft::VisualStudio::Debugger::Breakpoints::DkmPendingBreakpoint
[System.Runtime.InteropServices.Guid("5e4de51b-8d82-5d38-8041-3a42c18d3f47")]
public class DkmPendingAddressBreakpoint : Microsoft.VisualStudio.Debugger.Breakpoints.DkmPendingBreakpoint
[<System.Runtime.InteropServices.Guid("5e4de51b-8d82-5d38-8041-3a42c18d3f47")>]
type DkmPendingAddressBreakpoint = class
    inherit DkmPendingBreakpoint
Public Class DkmPendingAddressBreakpoint
Inherits DkmPendingBreakpoint
Vererbung
Vererbung
DkmPendingAddressBreakpoint
Attribute

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 beibehalten, was angibt, dass nur die Sprache bekannt ist (nicht der Compiler).

(Geerbt von DkmPendingBreakpoint)
InstructionAddress

Abstrakte Darstellung eines ausführbaren Codespeicherorts (z. B. EIP-Wert). Wenn die Anweisungsadresse nicht aufgelöst ist (DkmUnknownInstructionAddress) und eine CPU-Anweisung enthält, versucht der Haltepunkt-Manager, die Anweisung zu binden, wenn ein Modul innerhalb dieses Bereichs geladen wird.

IsBarrier

Gibt an, ob es sich bei diesem Haltepunkt um eine Barriere handelt, die auf der Hardware festgelegt werden soll. Dies funktioniert beim GPU-Debuggen.

(Geerbt von DkmPendingBreakpoint)
IsUnloaded

Gibt true zurück, wenn ein "entladenes" 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 debugt Prozesse, sodass dies die grundlegende Einheit des Debuggens ist. Ein DkmProcess kann einen Systemprozess oder einen virtuellen Prozess wie Minidumps darstellen.

(Geerbt von DkmPendingBreakpoint)
SourceId

Gibt die Quelle eines Objekts an. SourceIds werden verwendet, um die Filterung in Szenarien zu aktivieren, in denen mehrere Komponenten Instanzen einer Klasse erstellen. Beispielsweise können Quell-IDs verwendet werden, um zu bestimmen, ob ein Haltepunkt aus dem AD7 AL stammt (z. B. Benutzer-Haltepunkt oder ein anderer Haltepunkt, der auf SDM-Ebene sichtbar ist) anstelle eines Haltepunkts, der von einer anderen Komponente erstellt werden kann (z. B. ein interner Haltepunkt, der für das Schrittschritt verwendet wird).

(Geerbt von DkmPendingBreakpoint)
TagValue

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

(Geerbt von DkmPendingBreakpoint)
Thread

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

(Geerbt von DkmPendingBreakpoint)
UniqueId

Guid, die dieses ausstehende Breakpointobjekt eindeutig identifiziert.

(Geerbt von DkmPendingBreakpoint)

Methoden

Close()

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

DkmPendingBreakpoint-Objekte werden automatisch geschlossen, wenn ihr zugeordnetes DkmProcess-Objekt geschlossen wird.

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

(Geerbt von DkmPendingBreakpoint)
Create(Guid, DkmCompilerId, DkmThread, Boolean, DkmInstructionAddress, DkmDataItem)

Erstellt ein neues ausstehendes Breakpointobjekt. Nach der Erstellung wird das zurückgegebene Objekt weiterhin deaktiviert und vom Haltepunkt-Manager nicht nachverfolgt. Um die Initialisierung abzuschließen, sollte der Aufrufer zusätzliche Eigenschaften für den Haltepunkt und "Aktivieren" oder "Registrieren" festlegen. Der Aufrufer ist dafür verantwortlich, das erstellte Objekt zu schließen, nachdem er fertig ist.

Disable(DkmWorkList, DkmCompletionRoutine<DkmDisablePendingBreakpointAsyncResult>)

Deaktivieren Sie das ausstehende Haltepunktobjekt, 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, nachdem 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 aufgerufen werden (Komponentenebene > 100.000).

(Geerbt von DkmPendingBreakpoint)
Enable(DkmWorkList, DkmCompletionRoutine<DkmEnablePendingBreakpointAsyncResult>)

Legt den Status des ausstehenden Haltepunkts so fest, dass Instanzen des Haltepunkts, die in Zukunft gebunden werden, treffern. Wenn der ausstehende Haltepunkt noch nicht registriert ist, registriert diese Methode auch den Haltepunkt. Das Registrieren eines ausstehenden Haltepunkts besteht darin, zu versuchen, den Haltepunkt für alle Module aufzulösen, die derzeit geladen werden, und den Haltepunkt der Liste der Haltepunkte hinzuzufügen, die der Haltepunkt-Manager bei jeder Modullast 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, nachdem 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 aufgerufen werden (Komponentenebene > 100.000).

(Geerbt von DkmPendingBreakpoint)
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 darin, zu versuchen, den Haltepunkt für alle Module aufzulösen, die derzeit geladen werden, und den Haltepunkt der Liste der Haltepunkte hinzuzufügen, die der Haltepunkt-Manager bei jeder Modullast bindet.

Diese Methode fügt ein neues Arbeitselement an die angegebene Arbeitsliste an und gibt zurück, nachdem 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 aufgerufen werden (Komponentenebene > 100.000).

(Geerbt von DkmPendingBreakpoint)
GetBoundBreakpoints()

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

(Geerbt von DkmPendingBreakpoint)
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 vom Benutzer festgelegten Haltepunkten wird diese Benachrichtigung an die AD7 AL gesendet, und die AD7 AL löst einen IDebugBreakpointBoundEvent2 auf der Visual Studio-Debuggerbenutzeroberfläche aus.

(Geerbt von DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, Byte, String)

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

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

(Geerbt von DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, DkmBreakpointSuggestedFix, String)

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

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

(Geerbt von DkmPendingBreakpoint)
OnBreakpointMessage(DkmBreakpointMessageLevel, String)

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

(Geerbt von DkmPendingBreakpoint)
OnBreakpointUnbound(DkmBoundBreakpoint[], DkmBreakpointUnboundReason)

Benachrichtigung vom Haltepunkt-Manager, die angibt, dass der angegebene Haltepunkt ungebunden ist.

(Geerbt von DkmPendingBreakpoint)
OnHitWithError(DkmThread, Boolean, DkmBreakpointMessageLevel, String)

Lösen Sie ein BreakpointHitWithError-Ereignis aus. Komponenten, die die Ereignissenkenschnittstelle implementieren, erhalten die Ereignisbenachrichtigung. Diese Methode queert das Ereignis, und das Steuerelement kehrt sofort zum Aufrufer zurück.

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

(Geerbt von DkmPendingBreakpoint)
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 an allen gebundenen Haltepunkten dieses Bedingungs-Haltepunkts. 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, nachdem 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 aufgerufen werden (Komponentenebene > 100.000).

(Geerbt von DkmPendingBreakpoint)
SetDataItem<T>(DkmDataCreationDisposition, T)

Platzieren Sie ein neues Element im Datencontainer.

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

Initialisieren, aktualisieren oder löschen Sie die Trefferanzahl 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 Trefferanzahlbedingung unabhängig auf jedem gebundenen Haltepunkt agiert, anstatt auf dem ausstehenden Haltepunkt zusammenzufassen. Wenn beispielsweise die Trefferanzahl so konfiguriert ist, dass bei Treffer #2 angehalten wird, und der Haltepunkt an zwei separaten Stellen, von denen jeder einmal auf den Haltepunkt trifft, ist die Benutzeroberfläche immer noch nicht in den Unterbrechungsmodus übergegangen, 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, nachdem 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 aufgerufen werden (Komponentenebene > 100.000).

(Geerbt von DkmPendingBreakpoint)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Ausstehender Haltepunkt, der zum Binden an eine bestimmte Anweisungsadresse angefordert wird. Innerhalb der IDE werden diese Haltepunkte über das Aufrufstapelfenster, das Disassemblierungsfenster oder durch Eingabe einer Sechskantadresse in den Funktionshaltepunktdialog festgelegt. Da die DkmInstructionAddress als Eingabe angegeben wird, können diese Haltepunkte Runtimes unterstützen, die ihre Adressen nicht in einer Zeichenfolge (z. B. einem Interpreter) beibehalten können.

(Geerbt von DkmPendingBreakpoint)

Gilt für: