Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Debugmodul (DE) arbeitet mit dem Interpreter oder Betriebssystem zusammen, um Debuggingdienste wie Ausführungskontrolle, Haltepunkte und Ausdrucksauswertung bereitzustellen. Die DE ist für die Überwachung des Zustands eines zu debuggenden Programms verantwortlich. Um dies zu erreichen, nutzt die DE alle verfügbaren Methoden in der unterstützten Laufzeitumgebung, sei es von der CPU oder über APIs, die diese Laufzeit bereitstellt.
Beispielsweise stellt die Common Language Runtime (CLR) Mechanismen bereit, um ein ausgeführtes Programm über die ICorDebugXXX-Schnittstellen zu überwachen. Eine DE, die die CLR unterstützt, verwendet die entsprechenden ICorDebugXXX-Schnittstellen, um das Debuggen eines verwalteten Codeprogramms nachzuverfolgen. Anschließend werden alle Zustandsänderungen an den Sitzungsdebug-Manager (SDM) übermittelt, der solche Informationen an die Visual Studio-IDE weiterleitet.
Hinweis
Ein Debugmodul zielt auf eine bestimmte Laufzeit ab, d. h. auf das System, in dem das zu debuggende Programm ausgeführt wird. Die CLR ist die Laufzeit für verwalteten Code, und die Win32-Laufzeit ist für systemeigene Windows-Anwendungen. Wenn die von Ihnen erstellte Sprache auf eine dieser beiden Laufzeiten abzielen kann, stellt Visual Studio bereits die erforderlichen Debugmodule zur Auswahl. Alles, was Sie implementieren müssen, ist ein Ausdrucksauswerter.
Debug-Engine-Betrieb
Die Überwachungsdienste werden über die DE-Schnittstellen implementiert und können dazu führen, dass das Debugpaket zwischen verschiedenen Betriebsmodi wechselt. Weitere Informationen finden Sie unter Betriebsmodi. In der Regel gibt es nur eine DE-Implementierung pro Laufzeitumgebung.
Hinweis
Es gibt zwar separate DE-Implementierungen für Transact-SQL und JScript, VBScript und JScript teilen jedoch eine einzelne DE.
Das Debuggen von Visual Studio ermöglicht das Ausführen von Debugmodulen auf zwei Arten: entweder im gleichen Prozess wie die Visual Studio-Shell oder im gleichen Prozess wie das zu debuggende Zielprogramm. Das letztere Formular tritt in der Regel auf, wenn der zu debuggende Prozess tatsächlich ein Skript ist, das unter einem Dolmetscher ausgeführt wird. Das Debugmodul muss über intime Kenntnisse des Dolmetschers verfügen, um das Skript zu überwachen. In diesem Fall ist der Interpreter tatsächlich eine Laufzeitumgebung. Debug-Engines sind für bestimmte Laufzeitimplementierungen vorgesehen. Darüber hinaus kann die Implementierung einer einzelnen DE über Prozess- und Computergrenzen hinweg aufgeteilt werden (z. B. Remotedebugging).
Die DE macht die Visual Studio-Debugschnittstellen verfügbar. Die gesamte Kommunikation erfolgt über COM. Unabhängig davon, ob die DE-Datei im Prozess, außerhalb des Prozesses oder auf einem anderen Computer geladen wird, wirkt sich dies nicht auf die Komponentenkommunikation aus.
Die DE arbeitet mit einer Ausdrucksauswertungskomponente zusammen, um für diese bestimmte Laufzeit die Syntax von Ausdrücken zu verstehen. Die DE arbeitet auch mit einer Symbolhandlerkomponente zusammen, um auf die vom Sprachcompiler generierten symbolischen Debuginformationen zuzugreifen. Weitere Informationen finden Sie unter Expression evaluator and Symbol provider.