Remotedebugging (Debuggermodul)
Remote-Debugging tritt auf, wenn die Kommunikation eines Clients mit einem Ziel indirekt erfolgt, zum Beispiel über eine Netzwerkverbindung. Beim Remotedebugging können mehrere Instanzen des Debuggermoduls an dem Debuggen eines Ziels beteiligt sein. Genau eine dieser Instanzen ist jedoch für die Debugsitzung verantwortlich; diese Instanz wird als Hostmodulbezeichnet.
Es gibt viele mögliche Konfigurationen: Das Clientobjekt kann im Host-Motor (intelligente Clients) oder einer anderen Instanz des Motors (Debugging-Clients) erstellt werden; der Host-Motor kann direkt mit dem Ziel verbunden werden (Debugging-Server); oder ein Proxy kann direkt mit dem Ziel verbunden werden (Prozess-Server und Kernel-Verbindungsserver).
Mehrere Clients können gleichzeitig eine Verbindung mit dem Hostmodul herstellen. Und das Hostmodul kann eine Verbindung mit mehreren Zielen in der gleichen Debugsitzung herstellen. Es kann optional ein oder mehrere Proxys zwischen den Clients und der Host-Engine sowie zwischen der Host-Engine und jedem Ziel vorhanden sein.
Intelligente Clients sind Clientobjekte, die direkt mit dem Hostmodul kommunizieren. Ein Debugclient wird erstellt, indem DebugConnect aufgerufen wird. Der Client kommuniziert über RPC-Aufrufe mit dem Hostmodul. Diese Aufrufe stellen Methodenaufrufe in der API des Moduls dar (einschließlich Aufrufe, die das Hostmodul an die Rückrufobjekte sendet).
Ein Debugserver ist eine Modulinstanz, die direkt mit dem Ziel kommuniziert und auch als Hostmodul fungiert. Prozessserver und Kernelverbindungsserver kommunizieren direkt mit dem Ziel, sind aber nicht die Host-Engine. Das Hostmodul kommuniziert mit dem Prozessserver oder Kernelverbindungsserver, indem Speicher, Prozessor- und Betriebssystemanforderungen auf niedriger Ebene gesendet werden, und der Server sendet die Ergebnisse zurück.
Hinweis Ein typisches Setup mit zwei Computern für das Kernel-Debugging – wobei ein Computer der Ziel-Computer ist und der andere der Hostcomputer – wird nicht als Remotedebugging angesehen, da nur eine Instanz der Engine (auf dem Hostcomputer) vorhanden ist und direkt mit dem Ziel-Computer kommuniziert.
Zusatzinformation
Weitere Informationen zum Ausführen des Remotedebuggings finden Sie unter Remoteziele.