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.
Fast jede Interaktion mit dem Debuggermodul erfolgt über Clientobjekte, die häufig einfach als Clients bezeichnet werden. Jeder Client stellt eine Implementierung der Schnittstellen der obersten Ebene der Engine bereit. Jede Schnittstelle stellt einen unterschiedlichen Satz von Methoden bereit, die für die Interaktion mit dem Motor und durch den Motor mit den Zielen verwendet werden können. Eine Instanz der Engine kann viele Clients haben, die jeweils einen eigenen Zustand haben.
Primäre Clients
Ein primärer Client ist ein Client, der der aktuellen Debugsitzung beigetreten ist. Beim Erstellen eines neuen Clientobjekts handelt es sich zunächst nicht um einen primären Client. Ein Client wird ein primärer Client, wenn er zum Abrufen eines Ziels (z. B. durch Aufrufen von CreateProcess2) verwendet wird oder mit der Debugsitzung mithilfe von ConnectSession verbunden ist. Der Debuggerbefehl .clients listet nur die primären Clients auf.
Rückrufobjekte
Rückrufobjekte können bei jedem Client registriert werden. Es gibt drei Arten von Rückrufobjekten:
Eingaberückrufobjekte (oder Eingaberückrufe): Das Modul ruft Eingaberückrufe auf, um Eingaben anzufordern. Beispielsweise könnte ein Debugger mit einem Konsolenfenster einen Eingaberückruf registrieren, um dem Modul Eingaben vom Benutzer bereitzustellen, oder ein Debugger kann einen Eingaberückruf registrieren, um dem Modul Eingaben aus einer Datei bereitzustellen.
Ausgaberückrufobjekte (oder Ausgaberückrufe): Das Modul ruft Ausgaberückrufe auf, um die Ausgabe anzuzeigen. Beispielsweise könnte ein Debugger mit einem Konsolenfenster einen Ausgaberückruf registrieren, um die Ausgabe des Debuggers für den Benutzer darzustellen, oder ein Debugger registriert möglicherweise einen Ausgaberückruf, um die Ausgabe an eine Protokolldatei zu senden.
Ereignisrückrufobjekte (oder Ereignisrückrufe): Das Modul ruft Ereignisrückrufe auf, wenn ein Ereignis in einem Ziel auftritt (oder eine Änderung im Zustand des Moduls vorliegt). Beispielsweise könnte eine Debuggererweiterungsbibliothek einen Ereignisrückruf registrieren, um bestimmte Ereignisse zu überwachen oder automatisierte Aktionen auszuführen, wenn ein bestimmtes Ereignis auftritt.
Remote-Debugging
Clientobjekte erleichtern die Kommunikation mit Remoteinstanzen des Hostmoduls. Die DebugConnect-Funktion erstellt ein Clientobjekt, das mit einer Remotemodulinstanz verbunden ist. Methoden, die für diesen Client aufgerufen werden, werden vom Remotemodul ausgeführt, und Rückrufobjekte, die lokal mit dem Client registriert sind, werden aufgerufen, wenn das Remotemodul Rückrufaufrufe ausführt.
Zusätzliche Informationen
Ausführliche Informationen zum Erstellen und Verwenden von Clientobjekten finden Sie unter Verwenden von Rückrufobjekten. Ausführliche Informationen zum Registrieren von Rückrufobjekten finden Sie unter Verwenden von Rückrufobjekten.