Wichtige Schnittstellen

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

Diskussion (Discussion)

Diese Schnittstellen werden in erster Linie verwendet, um das Debugmodul (DE) zu erstellen. Sie sind hier nach Kategorien organisiert:

Breakpoints

Diese Schnittstellen beziehen sich auf die Implementierung und Nachverfolgung von Haltepunkten.

Schnittstelle Implementiert von Beschreibung
IDebugBoundBreakpoint2 DE Stellt einen Haltepunkt dar, der an einen Speicherspeicherort gebunden ist.
IDebugBreakpointBoundEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt an einen Speicherort gebunden ist.
IDebugBreakpointChecksumRequest2 VS Stellt eine Dokumentprüfsumme für eine Haltepunktanforderung dar.
IDebugBreakpointErrorEvent2 DE Wird von der DE gesendet, wenn ein Haltepunkt nicht an einen Speicherspeicherort 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 ein Haltepunkt von einem Speicherspeicherort getrennt ist.
IDebugErrorBreakpoint2 DE Stellt einen ungültigen Haltepunkt dar (zurückgegeben von IDebugBreakpointErrorEvent2).
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 beim Erstellen eines gebundenen Haltepunkts verwendet.
IEnumDebugBoundBreakpoints2 DE Stellt eine Aufzählung über einer Reihe von gebundenen Haltepunkten dar.
IEnumDebugErrorBreakpoints2 DE Stellt eine Aufzählung über einen Satz von Haltepunkten dar, die nicht an einen Speicherort gebunden werden konnten.

Kontexte

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

Schnittstelle Implementiert von Beschreibung
IDebugCodeContext2 DE Stellt die Startposition einer Codeanweisung dar.
IDebugCodeContext3 DE Erweitert die IDebugCodeContext2-Schnittstelle , um den Abruf 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 den Anfangsspeicherort im Speicher einer Sammlung von Bytes dar.
IDebugStackFrame2 DE Stellt einen Stapelframekontext an einem Haltepunkt oder einer Ausnahme dar.
IDebugStackFrame3 DE Stellt einen Stapelframekontext an einem Haltepunkt oder einer Ausnahme dar.
IEnumDebugCodeContexts2 DE Stellt eine Aufzählung über eine Reihe von Codekontexten dar.

Core Server

Diese Schnittstellen stellen den Computer dar, auf dem ein Programm gedebuggt wird. Diese werden von Visual Studio implementiert, können jedoch von Debugmodulen aufgerufen werden.

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

Debugmodule

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

Schnittstelle Implementiert von Beschreibung
IDebugEngine2 DE Stellt ein benutzerdefiniertes Debugmodul dar.
IDebugEngine3 DE Stellt ein benutzerdefiniertes Debugmodul dar, das das Laden von Symbolen, JustMyCode und Ausnahmen unterstützt.
IDebugEngineCreateEvent2 DE Gesendet von jeder neuen Instanz der DE, um anzugeben, dass sie bereit ist, Debuggingaufgaben zu verarbeiten.
IDebugEngineLaunch2 DE Stellt ein benutzerdefiniertes Debugmodul dar, das das Starten von Programmen unterstützt.
IDebugProgramEngines2 DE, PS Stellt einen Programmknoten dar, der mehrere Debugmodule behandelt.
IDebugQueryEngine2 DE Bietet eine Möglichkeit für das SDM, eine Schnittstelle zum Debugmodul aus einem Thread, Programm oder Stapelframe abzurufen.

Dokumente

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

Schnittstelle Implementiert von Beschreibung
IDebugActivateDocumentEvent2 DE Gesendet von der DE, um das Öffnen eines Dokuments anzufordern.
IDebugDisassemblyStream2 DE Stellt einen Datenstrom von zerlegten Anweisungen aus einem Dokument dar.
IDebugDocument2 VS, DE Stellt ein von der DE bereitgestelltes Dokument dar, das einen Namen und eine Klassen-ID (CLSID) angibt.
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 angibt.
IDebugDocumentTextEvents2 DE Gesendet von der DE, um Änderungen an einer Quelldatei anzugeben, die sich im Arbeitsspeicher befindet.

Ereignisse

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

Schnittstelle Implementiert von Beschreibung
IDebugActivateDocumentEvent2 DE Gesendet von der DE, um das Öffnen eines Dokuments anzufordern.
IDebugBeforeSymbolSearchEvent2 DE Das Debugmodul (DE) sendet diese Schnittstelle an den Sitzungsdebug-Manager (SDM), um die Statusleistenmeldung beim Laden des Symbols festzulegen.
IDebugBreakEvent2 DE Gesendet von der DE, wenn eine Unterbrechung im Programm 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 Gesendet von der DE, um zu bestimmen, ob sie an einem bestimmten Ort anhalten soll.
IDebugDocumentTextEvents2 DE Gesendet von der DE, um Änderungen an einer Quelldatei anzugeben, die sich im Arbeitsspeicher befindet.
IDebugEngineCreateEvent2 DE Gesendet von jeder neuen Instanz der DE, um anzugeben, dass sie bereit ist, Debuggingaufgaben zu verarbeiten.
IDebugEntryPointEvent2 DE Gesendet von der DE, 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 einen Fehler zurückgeben kann, um lesbare Fehlermeldungen bereitzustellen.
IDebugEvent2 DE, PS Basisschnittstelle, von der alle anderen Ereignisschnittstellen abgeleitet werden.
IDebugEventCallback2 VS Stellt eine Schnittstelle dar, die vom SDM implementiert wird, an die Ereignisse (ausgedrückt als Objekte, die eine bestimmte Ereignisschnittstelle implementieren) gesendet werden.
IDebugExceptionEvent2 DE Gesendet von der DE, wenn eine Ausnahme in dem Programm aufgetreten ist, das gedebuggt wird.
IDebugExpressionEvaluationCompleteEvent2 DE Wird von der DE gesendet, wenn eine asynchrone Ausdrucksauswertung abgeschlossen ist.
IDebugFindSymbolEvent2 VERALTET. NICHT VERWENDEN.
IDebugInterceptExceptionCompleteEvent2 DE Gesendet von der DE, wenn die Verarbeitung für eine abgefangene Ausnahme abgeschlossen wurde.
IDebugLoadCompleteEvent2 DE Gesendet von der DE, wenn ein Programm das Laden abgeschlossen hat.
IDebugMessageEvent2 DE Gesendet von der DE, damit die IDE dem Benutzer eine Informationsmeldung anzeigt.
IDebugModuleLoadEvent2 DE Wird von der DE gesendet, wenn ein Modul geladen oder entladen wird.
IDebugNoSymbolsEvent2 DE Signalisiert die Visual Studio-Debugger-Benutzeroberfläche, um den Benutzer zu warnen, dass Symbole für die gestartete ausführbare Datei nicht gefunden werden konnten.
IDebugOutputStringEvent2 DE Gesendet von der DE, damit die IDE eine beliebige Zeichenfolge anzeigt.
IDebugPortEvents2 VS, DE Gesendet von einem Port, um Portereignisse an jeden Listener zu kommunizieren.
IDebugProcessCreateEvent2 DE, PS Gesendet vom DE oder Port, wenn ein Prozess erstellt wurde.
IDebugProcessDestroyEvent2 DE, PS Gesendet vom DE oder Port, wenn ein Prozess zerstört wurde.
IDebugProgramCreateEvent2 DE, PS Gesendet vom DE oder Port, wenn ein Programm erstellt wurde.
IDebugProgramDestroyEvent2 DE, PS Gesendet vom DE oder Port, wenn ein Programm zerstört wurde.
IDebugProgramDestroyEventFlags2 DE Ermöglicht es einem Debugmodul, das Standardverhalten der Visual Studio-Benutzeroberfläche beim Beenden einer Debugsitzung außer Kraft zu setzen.
IDebugProgramNameChangedEvent2 DE Wird vom Debugmodul (DE) an den Sitzungsdebug-Manager (SDM) gesendet, wenn sich der Name eines Programms ändert.
IDebugPropertyCreateEvent2 DE Gesendet von der DE, wenn eine neue Eigenschaft (dargestellt durch die IDebugProperty2 Schnittstelle) erstellt wurde.
IDebugPropertyDestroyEvent2 DE Gesendet von der DE, wenn eine Eigenschaft zerstört wurde.
IDebugReturnValueEvent2 DE Wird von der DE gesendet, wenn Sie eine Funktion ausführen oder über eine Funktion ausführen, damit der Rückgabewert korrekt angezeigt werden kann.
IDebugSettingsCallback2 VS Ermöglicht das Remotelesen von Metrikeinstellungen durch Debugmodule.
IDebugStepCompleteEvent2 DE Gesendet von der DE, wenn ein Schritt in, über oder aus einer Anweisung abgeschlossen wurde.
IDebugSymbolSearchEvent2 DE Gesendet von der DE, um den Erfolg oder Fehler des Ladens von Symbolen für ein Modul anzugeben.
IDebugThreadCreateEvent2 DE Gesendet von der DE, wenn ein Thread erstellt wurde.
IDebugThreadDestroyEvent2 DE Gesendet von der DE, 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. Abgerufen von der IDebugExpressionContext2-Schnittstelle .
IDebugExpressionContext2 DE Stellt einen Kontext dar, in dem ein Ausdruck ausgewertet wird. Abgerufen von der IDebugStackFrame2-Schnittstelle .
IDebugExpressionEvaluationCompleteEvent2 DE Wird von der DE gesendet, wenn eine asynchrone Ausdrucksauswertung abgeschlossen ist.

Arbeitsspeicher

Diese Schnittstellen stellen Sequenzen von Bytes im Arbeitsspeicher dar.

Schnittstelle Implementiert von Beschreibung
IDebugMemoryBytes2 DE Stellt eine Abfolge von Bytes im Arbeitsspeicher dar, die aus lese- oder schreibgeschützt werden können.
IDebugMemoryContext2 DE Stellt einen Speicherort im Speicher einer Bytesequenz dar.

Module

Diese Schnittstellen stellen ein Modul dar, das einer ausführbaren 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 von der 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 Aufzählung über einen Satz von Modulen dar, die von einem IDebugProgram2 bekannt sind.

Ports

Diese Schnittstellen stellen Ports und Portlieferanten dar.

Schnittstelle Implementiert von Beschreibung
IDebugDefaultPort2 VS, PS Stellt den Standardport auf dem lokalen Computer dar.
IDebugFirewallConfigurationCallback2 VS Aktiviert ein Debugmodul, das DCOM verwendet, um die Visual Studio-Benutzeroberfläche aufzufordern, um sicherzustellen, dass die Firewall das Remotedebugging nicht blockiert.
IDebugPort2 VS, PS Stellt einen Port dar.
IDebugPortEvents2 PS Gesendet von einem Port, um Portereignisse an jeden 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 derzeit 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, von dem ein neuer Port erstellt oder sich befindet.
IDebugPortSupplier2 PS Stellt einen Anbieter von Ports dar.
IDebugPortSupplier3 PS Stellt einen Anbieter von Ports dar, der Informationen zu den erstellten Ports beibehalten (auf dem Datenträger speichern) kann.
IDebugPortSupplierDescription2 PS Ermöglicht der Visual Studio-Benutzeroberfläche das Anzeigen von Text im Abschnitt "Transportinformationen " des Dialogfelds "An Prozess anfügen".
IDebugWindowsComputerPort2 VS Ermöglicht das Abfragen von Informationen zum Zielcomputer.
IEnumDebugPorts2 VS, PS Stellt eine Aufzählung über eine Reihe von Ports dar.
IEnumDebugPortSuppliers2 VS Stellt eine Aufzählung über eine Reihe von Portlieferanten 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 zum Ersetzen von Step-, Continue- und Execute-Methoden auf der IDebugProgram2-Schnittstelle verwendet).
IDebugProcessCreateEvent2 DE, PS Gesendet vom DE oder Port, wenn ein Prozess erstellt wurde.
IDebugProcessDestroyEvent2 DE, PS Gesendet vom DE oder Port, wenn ein Prozess zerstört wurde.
IDebugProcessEx2 PS Stellt einen Prozess dar, der nachverfolgen muss, welche Sitzung an sie angefügt ist.
IEnumDebugProcesses2 PS Stellt eine Aufzählung einer Gruppe von Prozessen für einen Port dar.

Programme

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

Schnittstelle Implementiert von Beschreibung
IDebugEngineProgram2 DE Stellt ein IDebugProgram2 dar, das in Abstimmung mit anderen Programmen zusammenarbeiten muss, die gleichzeitig gedebuggt werden.
IDebugProgram2 DE, PS Stellt eine logische Ausführungseinheit dar.
IDebugProgramCreateEvent2 DE, PS Gesendet vom DE oder Port, wenn ein Programm erstellt wurde.
IDebugProgramDestroyEvent2 DE, PS Gesendet vom DE oder Port, wenn ein Programm zerstört wurde.
IDebugProgramEngines2 DE, PS Stellt einen IDebugProgramNode2-Wert dar, der von mehreren Debugmodulen behandelt werden kann.
IDebugProgramEx2 PS Stellt ein IDebugProgram2 dar, das in der Lage sein muss, zu verfolgen, welche Sitzung an sie angefügt ist.
IDebugProgramHost2 DE, PS Stellt ein IDebugProgram2 dar, das Informationen zum Prozess zurückgeben kann, in dem er ausgeführt wird.
IDebugProgramNode2 DE, PS Stellt ein Programm dar, das gedebuggt werden kann.
IDebugProgramNodeAttach2 DE, PS Ermöglicht es einem Programmknoten, über einen Versuch, das zugeordnete Programm anzufügen, benachrichtigt zu werden.
IDebugProgramProvider2 DE Stellt eine Möglichkeit bereit, die SDM zum Abfragen einer DE zu den von dieser DE gesteuerten Programmen zu verwenden.
IDebugProgramPublisher2 VS Wird von DEs verwendet, um Programme beim SDM zu registrieren, um anzuzeigen, dass sie gedebuggt werden.
IDebugProviderProgramNode2 DE, PS Stellt eine IDebugProgramNode2 dar, die Schnittstellen über Thread- oder Prozessgrenzen hinweg marshallen kann.
IEnumDebugPrograms2 DE, PS Stellt eine Aufzählung einer Reihe 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, dokuments oder des Ergebnisses einer Ausdrucksauswertung dar.
IDebugProperty3 DE Stellt eine IDebugProperty2 dar, die beliebig lange Zeichenfolgen unterstützt.
IDebugPropertyCreateEvent2 DE Gesendet von der DE, wenn eine neue Eigenschaft (dargestellt durch die IDebugProperty2-Schnittstelle ) erstellt wurde.
IDebugPropertyDestroyEvent2 DE Gesendet von der DE, 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 Aufzählung über einer Reihe von DEBUG_PROPERTY_INFO Strukturen dar, die Variablen, Register, Parameter und Ausdrücke beschreiben.
IEnumDebugReferenceInfo2 DE Stellt eine Aufzählung über einer Reihe von DEBUG_REFERENCE_INFO Strukturen dar.

Stapelrahmen

Diese Schnittstellen stellen einen Stapelframe 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 verarbeiten kann.
IEnumCodePaths2 DE Stellt eine Aufzählung über den Satz von CODE_PATH Strukturen dar, die die Funktionsaufrufsequenz angeben, die verwendet wird, um zu einem bestimmten Stapelframe zu gelangen.
IEnumDebugFrameInfo2 DE Stellt eine Aufzählung über einer Reihe von FRAMEINFO-Strukturen dar, die Stapelframes 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 Gesendet von der DE, wenn ein Thread erstellt wurde.
IDebugThreadDestroyEvent2 DE Gesendet von der DE, wenn ein Thread zerstört wurde.
IDebugThreadNameChangedEvent2 DE Wird von der DE gesendet, wenn ein Thread seinen Namen geändert hat.
IEnumDebugThreads2 DE Stellt eine Aufzählung über einen Satz von Threads dar.

Typschnellansichten

Diese Schnittstellen bieten Unterstützung für Typschnellansichten. Diese Schnittstellen werden in der Regel von einem Ausdrucksauswerter implementiert.

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

Siehe auch