Wichtige Schnittstellen

Die folgenden Schnittstellen sind die Hauptschnittstellen zum Erweitern des Debuggers mithilfe von Visual Studio SDK .

Diskussion (Discussion)

Diese Schnittstellen werden hauptsächlich zum Erstellen der Debug-Engine (DE) verwendet. Sie sind hier nach Kategorien organisiert:

Haltepunkte

Diese Schnittstellen stehen im Zusammenhang mit der Implementierung und Nachverfolgung von Breakpoints.

Schnittstelle Implementiert von Beschreibung
IDebugBoundBreakpoint2 DE Stellt einen Haltepunkt dar, der an eine Speicherposition gebunden ist.
IDebugBreakpointBoundEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt an einen Speicherort gebunden ist.
IDebugBreakpointChecksumRequest2 VS Stellt eine Dokumentüberprüfungssumme für eine Breakpointanforderung dar.
IDebugBreakpointErrorEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt nicht an einen Speicherort gebunden werden kann.
IDebugBreakpointEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt erreicht wird.
IDebugBreakpointRequest2 VS Stellt eine Anforderung für einen Haltepunkt dar. wird beim Erstellen eines ausstehenden Haltepunkts verwendet.
IDebugBreakpointRequest3 VS Stellt eine Anforderung für einen Haltepunkt dar. wird beim Erstellen eines ausstehenden Haltepunkts verwendet.
IDebugBreakpointResolution2 DE Stellt die Informationen dar, die zum Binden eines Haltepunkts verwendet werden.
IDebugBreakpointUnboundEvent2 DE Wird von der DE gesendet, wenn die Gebundene eines Haltepunkts von einer Speicherposition entfernt wird.
IDebugErrorBreakpoint2 DE Stellt einen ungültigen Haltepunkt dar (wird von IDebugBreakpointErrorEvent2 zurückgegeben).
IDebugErrorBreakpointResolution2 DE Stellt die Auflösungsinformationen zu einem ungültigen Haltepunkt dar.
IDebugFunctionPosition2 DE Stellt eine Position in einer Funktion dar, an der ein Haltepunkt festgelegt ist.
IDebugPendingBreakpoint2 DE Stellt einen Haltepunkt dar, der gebunden werden soll. wird zum Erstellen eines gebundenen Haltepunkts verwendet.
IEnumDebugBoundBreakpoints2 DE Stellt eine Enumeration über einem Satz gebundener Haltepunkte dar.
IEnumDebugErrorBreakpoints2 DE Stellt eine Enumeration über einem Satz von Haltepunkten dar, die nicht an einen Speicherort gebunden werden konnten.

Kontexten

Diese Schnittstellen stellen verschiedene Arten von Kontexten innerhalb des zu debuggenden Programms dar.

Schnittstelle Implementiert von Beschreibung
IDebugCodeContext2 DE Stellt die Anfangsposition einer Codeanweisung dar.
IDebugCodeContext3 DE Erweitert die IDebugCodeContext2-Schnittstelle, um das Abrufen von Modul- und Prozessschnittstellen zu ermöglichen.
IDebugDocumentContext2 VS, DE Stellt eine Position in einem Dokument dar.
IDebugExpressionContext2 DE Stellt den Kontext dar, in dem ein Ausdruck ausgewertet werden soll.
IDebugMemoryContext2 DE Stellt die Anfangsposition im Arbeitsspeicher einer Auflistung von Bytes dar.
IDebugStackFrame2 DE Stellt einen Stapelrahmenkontext an einem Haltepunkt oder einer Ausnahme dar.
IDebugStackFrame3 DE Stellt einen Stapelrahmenkontext an einem Haltepunkt oder einer Ausnahme dar.
IEnumDebugCodeContexts2 DE Stellt eine Enumeration über einen Satz von Codekontexten dar.

Core Server

Diese Schnittstellen stellen den Computer dar, auf dem ein Programm debuggt wird. Diese werden von Visual Studio implementiert, können aber von Debug-Engines aufgerufen werden.

Schnittstelle Implementiert von Beschreibung
IDebugCoreServer2 VS Bietet Zugriff auf Ports und Portanbieter sowie Informationen zum Computer.
IDebugCoreServer3 VS Stellt einen IDebugCoreServer2 dar, der Remotedebuggen unterstützt.

Debug-Engines

Diese Schnittstellen stellen Debug-Engines und die zugehörigen Ereignisse dar.

Schnittstelle Implementiert von Beschreibung
IDebugEngine2 DE Stellt eine benutzerdefinierte Debug-Engine dar.
IDebugEngine3 DE Stellt eine benutzerdefinierte Debug-Engine dar, die das Laden von Symbolen, JustMyCode und Ausnahmen unterstützt.
IDebugEngineCreateEvent2 DE Wird von jeder neuen Instanz der DE gesendet, um anzugeben, dass sie bereit ist, Debugaufgaben zu verarbeiten.
IDebugEngineLaunch2 DE Stellt eine benutzerdefinierte Debug-Engine dar, die das Starten von Programmen unterstützt.
IDebugProgramEngines2 DE, PS Stellt einen Programmknoten dar, der mehrere Debug-Engines behandelt.
IDebugQueryEngine2 DE Bietet dem SDM die Möglichkeit, eine Schnittstelle zur Debug-Engine aus einem Thread, Programm oder Stapelrahmen zu erhalten.

Dokumente

Diese Schnittstellen stellen Dokumente (Quelldateien) und die zugehörigen Elemente dar.

Schnittstelle Implementiert von Beschreibung
IDebugActivateDocumentEvent2 DE Wird von der DE gesendet, um das Öffnen eines Dokuments an fordern.
IDebugDisassemblyStream2 DE Stellt einen Stream von disassemblierten Anweisungen aus einem Dokument dar.
IDebugDocument2 VS, DE Stellt ein von der DE bereitgestelltes Dokument dar und gibt einen Namen und eine Klassen-ID (CLSID) an.
IDebugDocumentChecksum2 DE, EE Stellt eine Prüfsumme für ein Debugdokument dar und ermöglicht das Übergeben der Prüfsumme zwischen Komponenten.
IDebugDocumentContext2 VS, DE Stellt einen Dokumentkontext dar, eine Position innerhalb eines Dokuments, die einer bestimmten Anweisung und einem bestimmten Codekontext entspricht.
IDebugDocumentPosition2 VS, DE Stellt eine allgemeine Position innerhalb eines Dokuments dar.
IDebugDocumentPositionOffset2 VS Stellt eine Position in einer Quelldatei als Zeichenoffset dar.
IDebugDocumentText2 VS, DE Stellt ein Textdokument dar, das von der DE (abgeleitet von IDebugDocument2)bereitgestellt wird und den tatsächlichen Text enthält.
IDebugDocumentTextEvents2 DE Wird von der DE gesendet, um Änderungen an einer Quelldatei anzugeben, die sich im Arbeitsspeicher befindet.

Ereignisse

Diese Schnittstellen stellen alle Ereignisse dar, die zwischen de und dem Sitzungsdebug-Manager (SDM) gesendet werden.

Schnittstelle Implementiert von Beschreibung
IDebugActivateDocumentEvent2 DE Wird von der DE gesendet, um das Öffnen eines Dokuments an fordern.
IDebugBeforeSymbolSearchEvent2 DE Die Debug-Engine (DE) sendet diese Schnittstelle an den Sitzungsdebug-Manager (SDM), um die Statusleistenmeldung beim Läden von Symbolen festlegen zu können.
IDebugBreakEvent2 DE Wird von der DE gesendet, wenn eine Unterbrechung des Programms abgeschlossen wurde.
IDebugBreakpointBoundEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt gebunden ist.
IDebugBreakpointErrorEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt nicht gebunden werden kann.
IDebugBreakpointEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt erreicht wird.
IDebugBreakpointUnboundEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt ungebunden ist.
IDebugCanStopEvent2 DE Wird von der De-De gesendet, um zu bestimmen, ob sie an einem bestimmten Speicherort angehalten werden soll.
IDebugDocumentTextEvents2 DE Wird vom DE gesendet, um Änderungen an einer Quelldatei anzugeben, die sich im Arbeitsspeicher befindet.
IDebugEngineCreateEvent2 DE Wird von jeder neuen Instanz der De-De gesendet, um anzugeben, dass sie bereit ist, Debugaufgaben zu verarbeiten.
IDebugEntryPointEvent2 DE Wird von der DE gesendet, um anzugeben, dass das zu debuggende Programm bereit ist, die erste Anweisung auszuführen.
IDebugErrorEvent2 DE Eine Schnittstelle, die von anderen Ereignisschnittstellen verwendet wird, die möglicherweise einen Fehler zurückgeben, um lesbare Fehlermeldungen bereitzustellen.
IDebugEvent2 DE, PS Basisschnittstelle, von der alle anderen Ereignisschnittstellen abgeleitet werden.
IDebugEventCallback2 VS Stellt eine vom SDM implementierte Schnittstelle dar, an die Ereignisse (ausgedrückt als Objekte, die eine bestimmte Ereignisschnittstelle implementieren) gesendet werden.
IDebugExceptionEvent2 DE Wird von der De-De gesendet, wenn eine Ausnahme im zu debuggenden Programm aufgetreten ist.
IDebugExpressionEvaluationCompleteEvent2 DE Wird von der DE gesendet, wenn eine asynchrone Ausdrucksauswertung abgeschlossen ist.
IDebugFindSymbolEvent2 VERALTET. VERWENDEN SIE NICHT.
IDebugInterceptExceptionCompleteEvent2 DE Wird vom De-De gesendet, wenn die Verarbeitung für eine abgefangene Ausnahme abgeschlossen wurde.
IDebugLoadCompleteEvent2 DE Wird von der De-De gesendet, wenn das Laden eines Programms abgeschlossen ist.
IDebugMessageEvent2 DE Wird von der DE gesendet, damit die IDE dem Benutzer eine Informationsmeldung anzeigt.
IDebugModuleLoadEvent2 DE Wird vom DE gesendet, wenn ein Modul geladen oder entladen wird.
IDebugNoSymbolsEvent2 DE Signalisiert der Visual Studio Debugger-Benutzeroberfläche, den Benutzer zu warnen, dass symbole für die gestartete ausführbare Datei nicht gefunden werden konnten.
IDebugOutputStringEvent2 DE Wird von der DE gesendet, damit die IDE eine beliebige Zeichenfolge anzeigt.
IDebugPortEvents2 VS, DE Wird von einem Port gesendet, um Portereignisse an einen beliebigen Listener zu kommunizieren.
IDebugProcessCreateEvent2 DE, PS Wird vom DE oder Port gesendet, wenn ein Prozess erstellt wurde.
IDebugProcessDestroyEvent2 DE, PS Wird vom DE oder Port gesendet, wenn ein Prozess zerstört wurde.
IDebugProgramCreateEvent2 DE, PS Wird vom DE oder Port gesendet, wenn ein Programm erstellt wurde.
IDebugProgramDestroyEvent2 DE, PS Wird vom DE oder Port gesendet, wenn ein Programm zerstört wurde.
IDebugProgramDestroyEventFlags2 DE Ermöglicht es einer Debug-Engine, das Standardverhalten der Benutzeroberfläche zu Visual Studio überschreiben, wenn Sie eine Debugsitzung beenden.
IDebugProgramNameChangedEvent2 DE Wird von der Debug-Engine (DE) an den Sitzungsdebugger-Manager (SESSION Debug Manager, SDM) gesendet, wenn sich der Name eines Programms ändert.
IDebugPropertyCreateEvent2 DE Wird vom DE gesendet, wenn eine neue Eigenschaft (dargestellt durch die IDebugProperty2 -Schnittstelle) erstellt wurde.
IDebugPropertyDestroyEvent2 DE Wird von der De-De gesendet, wenn eine Eigenschaft zerstört wurde.
IDebugReturnValueEvent2 DE Wird von der De-De gesendet, wenn eine Funktion schrittweise ausgeführt oder überschritten wird, damit der Rückgabewert ordnungsgemäß angezeigt werden kann.
IDebugSettingsCallback2 VS Ermöglicht es Debug-Engines, Metrikeinstellungen remote zu lesen.
IDebugStepCompleteEvent2 DE Wird von der De-De gesendet, wenn ein Schritt in, über oder aus einer Anweisung abgeschlossen wurde.
IDebugSymbolSearchEvent2 DE Wird von der DE gesendet, um den Erfolg oder Fehler beim Laden von Symbolen für ein Modul anzugeben.
IDebugThreadCreateEvent2 DE Wird vom DE gesendet, wenn ein Thread erstellt wurde.
IDebugThreadDestroyEvent2 DE Wird von der DE gesendet, wenn ein Thread zerstört wurde.
IDebugThreadNameChangedEvent2 DE Wird von der DE gesendet, wenn ein Thread seinen Namen geändert hat.

-Ausdrücke

Diese Schnittstellen stellen Ausdrücke dar, die in einem bestimmten Kontext ausgewertet werden sollen.

Schnittstelle Implementiert von Beschreibung
IDebugExpression2 DE Stellt einen ausdruck dar, der ausgewertet werden soll. Von der IDebugExpressionContext2-Schnittstelle abgerufen.
IDebugExpressionContext2 DE Stellt einen Kontext dar, in dem ein Ausdruck ausgewertet wird. Von der IDebugStackFrame2-Schnittstelle abgerufen.
IDebugExpressionEvaluationCompleteEvent2 DE Wird von der DE gesendet, wenn eine asynchrone Ausdrucksauswertung abgeschlossen ist.

Speicher

Diese Schnittstellen stellen Sequenzen von Bytes im Arbeitsspeicher dar.

Schnittstelle Implementiert von Beschreibung
IDebugMemoryBytes2 DE Stellt eine Folge von Bytes im Arbeitsspeicher dar, aus der gelesen oder in die geschrieben werden kann.
IDebugMemoryContext2 DE Stellt eine Position im Arbeitsspeicher einer Bytefolge dar.

Module

Diese Schnittstellen stellen ein Modul dar, das einer ausführbaren Datei oder .DLL Datei entspricht.

Schnittstelle Implementiert von Beschreibung
IDebugModule2 DE Stellt eine einzelne ausführbare Datei oder DLL dar.
IDebugModule3 DE Stellt ein IDebugModule2 dar, das Symbole unterstützt.
IDebugModuleLoadEvent2 DE Wird vom DE gesendet, wenn ein Modul geladen oder entladen wird.
IDebugSourceServerModule DE Stellt die Quellserverinformationen dar, die in einer PDB-Datei enthalten sind.
IEnumDebugModules2 DE Stellt eine Enumeration für eine Gruppe von Modulen dar, die von IDebugProgram2bekannt sind.

Ports

Diese Schnittstellen stellen Ports und Portanbieter dar.

Schnittstelle Implementiert von Beschreibung
IDebugDefaultPort2 VS, PS Stellt den Standardport auf dem lokalen Computer dar.
IDebugFirewallConfigurationCallback2 VS Aktiviert eine Debug-Engine, die DCOM verwendet, um die Visual Studio Benutzeroberfläche aufzufordern, sicherzustellen, dass die Firewall das Remotedebuggen nicht blockiert.
IDebugPort2 VS, PS Stellt einen Port dar.
IDebugPortEvents2 PS Wird von einem Port gesendet, um Portereignisse an einen beliebigen Listener zu kommunizieren.
IDebugPortEx2 PS Stellt einen Port dar, der Prozesse starten und beenden kann.
IDebugPortNotify2 PS Wird zum Registrieren und Aufheben der Registrierung von Programmen mit einem Port verwendet. ermöglicht es dem Port, Programme nachzuverfolgen, die gerade gedebuggt werden.
IDebugPortPicker PS Stellt eine benutzerdefinierte Benutzeroberfläche zum Auswählen des Ports dar.
IDebugPortRequest2 VS Stellt eine Anforderung für einen Port dar, aus dem ein neuer Port erstellt oder gefunden wird.
IDebugPortSupplier2 PS Stellt einen Lieferanten von Ports dar.
IDebugPortSupplier3 PS Stellt einen Anbieter von Ports dar, der Informationen zu den erstellten Ports beibehalten (auf Datenträger speichern) kann.
IDebugPortSupplierDescription2 PS Ermöglicht der Visual Studio Benutzeroberfläche das Anzeigen von Text im Abschnitt Transportinformationen des Dialogfelds An den Prozess anhängen.
IDebugWindowsComputerPort2 VS Ermöglicht das Abfragen von Informationen zum Zielcomputer.
IEnumDebugPorts2 VS, PS Stellt eine Enumeration über eine Gruppe von Ports dar.
IEnumDebugPortSuppliers2 VS Stellt eine Enumeration für eine Gruppe von Portanbietern dar.

Prozesse

Diese Schnittstellen stellen Prozesse dar, eine einzelne ausführbare Datei, die ein oder mehrere Programme enthält.

Schnittstelle Implementiert von Beschreibung
IDebugProcess2 PS, DE Stellt einen Prozess dar, der auf einem Computer ausgeführt wird.
IDebugProcess3 PS, DE Stellt einen Prozess dar, der das Debuggen aktiv unterstützt (wird verwendet, um die Methoden Step, Continue und Execute in der IDebugProgram2-Schnittstelle zu ersetzen).
IDebugProcessCreateEvent2 DE, PS Wird vom DE oder Port gesendet, wenn ein Prozess erstellt wurde.
IDebugProcessDestroyEvent2 DE, PS Wird vom DE oder Port gesendet, wenn ein Prozess zerstört wurde.
IDebugProcessEx2 PS Stellt einen Prozess dar, der nachverfolgen muss, an welche Sitzung angefügt ist.
IEnumDebugProcesses2 PS Stellt eine Enumeration einer Gruppe von Prozessen an einem Port dar.

Programme

Diese Schnittstellen stellen Programme dar, logische Ausführungseinheiten, die nicht notwendigerweise einer physischen ausführbaren Datei oder einem Modul entsprechen.

Schnittstelle Implementiert von Beschreibung
IDebugEngineProgram2 DE Stellt ein IDebugProgram2 dar, das zusammen mit anderen Programmen arbeiten muss, die gleichzeitig gedebuggt werden.
IDebugProgram2 DE, PS Stellt eine logische Ausführungseinheit dar.
IDebugProgramCreateEvent2 DE, PS Wird vom DE oder Port gesendet, wenn ein Programm erstellt wurde.
IDebugProgramDestroyEvent2 DE, PS Wird vom DE oder Port gesendet, wenn ein Programm zerstört wurde.
IDebugProgramEngines2 DE, PS Stellt ein IDebugProgramNode2 dar, das von mehreren Debug-Engines verarbeitet werden kann.
IDebugProgramEx2 PS Stellt ein IDebugProgram2 dar, das nachverfolgen kann, an welche Sitzung angefügt ist.
IDebugProgramHost2 DE, PS Stellt ein IDebugProgram2 dar, das Informationen über den Prozess zurückgeben kann, in dem er ausgeführt wird.
IDebugProgramNode2 DE, PS Stellt ein Programm dar, das debuggen werden kann.
IDebugProgramNodeAttach2 DE, PS Ermöglicht es einem Programmknoten, benachrichtigt zu werden, wenn versucht wird, an das zugeordnete Programm anzufügen.
IDebugProgramProvider2 DE Stellt eine Möglichkeit für das SDM bereit, eine De-De zu den programmen abzufragen, die von dieser DE gesteuert werden.
IDebugProgramPublisher2 VS Wird von DEs zum Registrieren von Programmen beim SDM verwendet, um anzuzeigen, dass sie gedebuggt werden.
IDebugProviderProgramNode2 DE, PS Stellt ein IDebugProgramNode2 dar, das Schnittstellen über Thread- oder Prozessgrenzen hinweg marshallen kann.
IEnumDebugPrograms2 DE, PS Stellt eine Enumeration eines Satzes von Programmen dar.

Eigenschaften

Diese Schnittstellen stellen Eigenschaften dar, einen Wert, der einem bestimmten Kontext zugeordnet ist, in der Regel das Ergebnis einer Ausdrucksauswertung.

Schnittstelle Implementiert von Beschreibung
IDebugCustomViewer EE Stellt eine IDebugProperty2 dar, die ihren Wert auf benutzerdefinierte Weise anzeigen kann.
IDebugProperty2 DE Stellt einen Wert eines Stapelrahmens, eines Dokuments oder des Ergebnisses einer Ausdrucksauswertung dar.
IDebugProperty3 DE Stellt ein IDebugProperty2 dar, das beliebig lange Zeichenfolgen unterstützt.
IDebugPropertyCreateEvent2 DE Wird vom DE gesendet, wenn eine neue Eigenschaft (dargestellt durch die IDebugProperty2-Schnittstelle) erstellt wurde.
IDebugPropertyDestroyEvent2 DE Wird vom DE gesendet, wenn eine Eigenschaft zerstört wurde.
IDebugReference2 DE Stellt einen Verweis auf eine Eigenschaft dar, die außerhalb eines bestimmten Stapelrahmens vorhanden sein kann.
IEnumDebugPropertyInfo2 DE Stellt eine Enumeration für einen Satz von DEBUG_PROPERTY_INFO Strukturen dar, die Variablen, Register, Parameter und Ausdrücke beschreiben.
IEnumDebugReferenceInfo2 DE Stellt eine Enumeration für einen Satz von DEBUG_REFERENCE_INFO Strukturen dar.

Stapelrahmen

Diese Schnittstellen stellen einen Stapelrahmen dar, einen Kontext, in dem ein Haltepunkt oder eine Ausnahme aufgetreten ist.

Schnittstelle Implementiert von Beschreibung
IDebugStackFrame2 DE Stellt einen Kontext dar, in dem ein Haltepunkt oder eine Ausnahme aufgetreten ist.
IDebugStackFrame3 DE Stellt einen IDebugStackFrame2 dar, der abgefangene Ausnahmen behandeln kann.
IEnumCodePaths2 DE Stellt eine Enumeration für den Satz von CODE_PATH Strukturen dar, die die Funktionsaufrufsequenz angeben, die zum Eintreffen in einem bestimmten Stapelrahmen verwendet wird.
IEnumDebugFrameInfo2 DE Stellt eine Enumeration für eine Reihe von FRAMEINFO-Strukturen dar, die Stapelrahmen beschreiben.

Threads

Diese Schnittstellen stellen Threads und die zugehörigen Ereignisse dar.

Schnittstelle Implementiert von Beschreibung
IDebugThread2 DE Stellt einen Ausführungsthread dar.
IDebugThreadCreateEvent2 DE Wird vom DE gesendet, wenn ein Thread erstellt wurde.
IDebugThreadDestroyEvent2 DE Wird von der DE gesendet, wenn ein Thread zerstört wurde.
IDebugThreadNameChangedEvent2 DE Wird von der De-De gesendet, wenn ein Thread seinen Namen geändert hat.
IEnumDebugThreads2 DE Stellt eine Enumeration für einen Satz von Threads dar.

Typ-Schnellansichten

Diese Schnittstellen bieten Unterstützung für Typvisuifikatoren. Diese Schnittstellen werden in der Regel von einer Ausdrucksauswertung implementiert.

Schnittstelle Implementiert von Beschreibung
IEEDataStorage EE Stellt ein Bytearray dar, das einer Typ-Schnellansicht angezeigt werden soll.
IPropertyProxyEESide EE Stellt Methoden zum Abrufen des Zugriffs auf Daten bereit, die an eine Typ-Schnellansicht übergeben werden sollen.
IPropertyProxyProvider EE Stellt eine Eigenschaft dar, die Zugriff auf IPropertyProxyEESide-Implementierungen bereitstellt.

Siehe auch