Freigeben über


Sitzungsdebug-Manager

Der Sitzungsdebug-Manager (SDM) verwaltet eine beliebige Anzahl von Debugmodulen (DE), die eine beliebige Anzahl von Programmen in mehreren Prozessen auf einer beliebigen Anzahl von Computern debuggen. Zusätzlich zu einem Debug-Engine-Multiplexer bietet die SDM eine einheitliche Ansicht der Debugsitzung für die IDE.

Sitzungsdebug-Manager-Vorgang

Der Sitzungsdebug-Manager (SDM) verwaltet die DE. Es können mehrere Debug-Engines gleichzeitig auf einer Maschine laufen. Zum Multiplexen der DEs umschließt das SDM eine Reihe von Schnittstellen aus den DEs und macht sie der IDE als einzelne Schnittstelle verfügbar.

Um die Leistung zu erhöhen, werden einige Schnittstellen nicht multiplexed. Stattdessen werden sie direkt aus der DE verwendet, und Aufrufe dieser Schnittstellen durchlaufen nicht das SDM. Beispielsweise werden Schnittstellen, die mit Speicher-, Code- und Dokumentkontexten verwendet werden, nicht multiplexed, da sie auf eine bestimmte Anweisung, einen Speicher oder ein Dokument in einem bestimmten Programm verweisen, das von einer bestimmten DE gedebuggt wird. An dieser Kommunikationsstufe muss keine andere DE beteiligt sein.

Dies gilt nicht für alle Kontexte. Aufrufe der Ausdrucksauswertungskontextschnittstelle durchlaufen das SDM. Während der Ausdrucksauswertung umschließt die SDM die IDebugExpression2-Schnittstelle , die sie der IDE zugibt, da bei der Auswertung dieses Ausdrucks möglicherweise mehrere DEs beteiligt sind, die Programme im selben Prozess debuggen, die möglicherweise im selben Thread ausgeführt werden.

Das SDM fungiert in der Regel als Delegierungsmechanismus, kann aber als Übertragungsmechanismus fungieren. Beispielsweise fungiert die SDM während der Ausdrucksauswertung als Übertragungsmechanismus, um alle DEs zu benachrichtigen, dass sie Code in einem bestimmten Thread ausführen können. Wenn das SDM ein Stoppereignis empfängt, benachrichtigt es ebenso die Programme, dass sie ihre Ausführung stoppen sollen. Wenn ein Schritt aufgerufen wird, sendet die SDM ein Signal an die Programme, damit sie weiterlaufen können. Haltepunkte werden auch an jede DE übertragen.

Das SDM verfolgt nicht das aktuelle Programm, den Thread oder den Stapelframe. Die Prozess-, Programm- und Threadinformationen werden in Verbindung mit bestimmten Debugereignissen an das SDM gesendet.

Siehe auch