Freigeben über


Informationen über die Debug-API

Aktualisiert: November 2007

Die Debug-API der Common Language Runtime (CLR) ermöglicht Anbietern von Tools das Schreiben von Debuggern zum Debuggen von Anwendungen, die in einer CLR-Umgebung ausgeführt werden. Der Code, der gedebuggt werden sollte, kann eine beliebige Art von Code sein, die von der CLR unterstützt wird.

Die Debug-API der CLR wird hauptsächlich mit nicht verwaltetem Code implementiert. Deshalb liegt die Debug-API als Satz von COM-Schnittstellen vor. Die API setzt sich aus einer Sammlung von COM-Objekten und -Schnittstellen zusammen, die von der CLR implementiert werden, sowie aus einer Sammlung von COM-Rückrufschnittstellen, die vom Debugger implementiert werden müssen. Da diese Debugschnittstellen alle auf COM basieren, können Debuggerprogramme auf einfache Weise erweitert werden, um das Remotedebuggen über Distributed COM (DCOM) zu ermöglichen.

API-Kategorien

Die Debug-API umfasst die folgenden drei Schnittstellengruppen, die in der Regel alle von einem CLR-Debugger verwendet und als nicht verwalteter Code implementiert werden.

  • Schnittstellen, die das Debuggen von CLR-Anwendungen unterstützen.

  • Schnittstellen, die Zugriff auf symbolische Debuginformationen bereitstellen, die normalerweise in Programmdatenbankdateien (PDB) gespeichert werden.

  • Schnittstellen, die das Abfragen der Prozess- und Anwendungsdomänen auf einem Computer unterstützen.

Die Debug-API hängt von zwei weiteren Schnittstellensätzen ab:

  • Metadaten-API zum Verarbeiten der Überprüfung von statischen Programminformationen, z. B. Klassen und Methodentypinformationen.

  • Symbolspeicher-API für die Unterstützung des Debuggens auf Quellcodeebene für Debugger von verwaltetem Code.

Die Debugschnittstellen können auch in Funktionskategorien unterteilt werden, die in der folgenden Tabelle aufgeführt sind.

API-Kategorie

Beschreibung

Registrierung

Schnittstellen, die der Debugger zum Registrieren bei der CLR und zum Anfordern von Benachrichtigungen beim Auftreten bestimmter Ereignisse aufruft.

Benachrichtigung

Rückrufschnittstellen, die von der CLR zum Benachrichtigen des Debuggers über verschiedene Ereignisse und zum Zurückgeben der angeforderten Informationen verwendet werden. Diese Schnittstellen müssen vom Debugger implementiert werden.

Haltepunkt

Schnittstellen, die der Debugger aufruft, um Informationen über Haltepunkte abzurufen.

Ausführung

Schnittstellen, die der Debugger zum Steuern der Ausführung der zu debuggenden Komponente und zum Zugreifen auf Aufruflisten aufruft.

Informationen

Schnittstellen, die der Debugger aufruft, um Informationen über die zu debuggende Komponente abzurufen.

Enumeration

Schnittstellen, die der Debugger aufruft, um Objekte aufzulisten.

Änderung

Schnittstellen, die der Debugger aufruft, um den Code zu ändern, der gedebuggt wird.

Unterstützte Umgebungen

CLR-Debugfunktionen sind für alle Prozessoren und Betriebssysteme verfügbar, die die CLR unterstützt, mit den folgenden Ausnahmen:

  • Die Debugmodi Bearbeiten und Fortfahren sowie gemischte Debugmodi werden von 64-Bit-Betriebssystemen nicht unterstützt. Für die SetIP-Methoden (ICorDebugILFrame::SetIP und ICorDebugNativeFrame::SetIP) gelten auf 64-Bit-Betriebssystemen weitere Einschränkungen. Die übrigen Funktionen sind für alle Prozessoren gleich und ermöglichen die prozessorspezifische Darstellung von Daten (Zeigergröße, Registerkontext usw.).

  • Die Debugmodi Bearbeiten und Fortfahren sowie gemischte Debugmodi werden von Win9x-basierten Betriebssystemen nicht unterstützt. Abgesehen von einigen speziellen Ausnahmen, die in der Dokumentation zu den einzelnen Funktionen aufgeführt sind, sind alle übrigen Funktionen für alle Betriebssysteme gleich.

Siehe auch

Weitere Ressourcen

Debuggen in .NET Framework

Übersicht über das Debugging in der CLR

Debuggen (Referenz zur nicht verwalteten API)