Debuggen von plattformübergreifenden Anwendungen
Nach oben zu Plattformübergreifende Anwendungen
Hinweis: Die in diesem Thema beschriebene neue Debugging-Lösung ist die für das plattformübergreifende Debugging empfohlene Lösung. In diesem Szenario können Sie:Die alte Lösung für das Remote-Debugging wird weiterhin unterstützt und kann optional zum Installieren und Ausführen der plattformübergreifenden Debugger verwendet werden. Dies ist aber aktuell nicht dokumentiert.
- Den Platform Assistant verwenden
- Ein Remote-Profil verwenden
- Den in der IDE integrierten Debugger verwenden
Mit dem in RAD Studio integrierten Debugger können Sie eine Anwendung debuggen, die für eine der unterstützten Zielplattformen konzipiert ist. Der integrierte Debugger arbeitet mit Delphi- und C++-Anwendungen.
RAD Studio unterstützt zwei plattformübergreifende Debugger:
- Embarcadero Win64 Debugger (auf einem PC mit einem 64-Bit-Windows-Betriebssystem)
- Embarcadero OS X Debugger (auf einem Mac mit einer Version von OS X)
Bei der Installation des Platform Assistant auf Ihrer Zielplattform werden die plattformübergreifenden Debugger ebenfalls installiert. Die auf Ihrem System registrierten Debugger sind auf der Seite Tools > Optionen > Debugger-Optionen aufgeführt.
Architektur des plattformübergreifenden XE2-Debugging
Zum Einrichten einer Debug-Sitzung für eine auf einem plattformübergreifenden Zielsystem ausgeführte Anwendung sind der Platform Assistant und ein Remote-Profil erforderlich. Ein Win64-Entwicklungssystem ist die einzige plattformübergreifende Konfiguration, für die der "Platform Assistant" nicht erforderlich ist.
Der plattformübergreifende Debugger und der zu debuggende Prozess werden beide auf der Zielplattform ausgeführt. Der plattformübergreifende Debugger meldet den Status und interagiert mit Ihnen auf dem Entwicklungs-PC in der RAD Studio-IDE. Das bedeutet, dass die Verwendung der plattformübergreifenden Debugger weitgehend der Verwendung des integrierten Debuggers für Win32-Anwendungen entspricht. Weiterführende Informationen über das Debugging finden Sie unter Überblick zum Debuggen.
Hinweis zum Win32-Remote-Debugging: Sie können weiterhin den vorhandenen (alten) Remote-Debugger für das Remote-Debugging verwenden. Bedenken Sie dabei aber, dass Sie – wie früher – alle Dateien manuell auf die Zielplattform kopieren müssen. Informationen zur Verwendung des alten Remote-Debuggers finden Sie unter Überblick zum externen Debugger und den zugehörigen Anleitungen. Mit der alten Remote-Debugging-Lösung können sowohl Win32- (wie früher) als auch plattformübergreifende Win64- und Mac OS X-Anwendungen gedebuggt werden. In der Hilfe sind jedoch keine detaillierten Informationen über die Verwendung des alten Remote-Debuggers für plattformübergreifendes Debugging vorhanden.
Anforderungen für plattformübergreifendes Debugging
Voraussetzungen für das plattformübergreifendes Debugging:
- Ihre Anwendung muss über eine aktivierte Zielplattform (Win64, OS X oder Remote-Win32) verfügen.
- Zielplattformabhängig:
- Für Mac OS X:
- Der Platform Assistant muss auf dem Mac ausgeführt werden.
- Ihrer Anwendung muss ein Remote-Profil zugeordnet sein.
- Ihr Entwicklungssystem muss über eine Live-Verbindung zu dem Mac verfügen (d.h. Verbindung testen auf der Seite Remote-Profile muss erfolgreich sein). Auf diese Weise können Sie den integrieren Debugger und den Bereitstellungs-Manager verwenden.
- Für 64-Bit-Windows:
- Bei einer Verbindung zu einem Remote-64-Bit-PC:
- Sie müssen den "Platform Assistant" und ein Remote-Profil verwenden.
- Ihr Entwicklungssystem muss über eine Live-Verbindung zu dem Remote-64-Bit-PC verfügen (d.h. Verbindung testen auf der Seite Remote-Profile muss erfolgreich sein). Auf diese Weise können Sie den integrieren Debugger und den Bereitstellungs-Manager verwenden.
- Bei einem PC-Entwicklungssystem mit einem 64-Bit-Windows-Betriebssystem:
- Sie müssen den "Platform Assistant" nicht verwenden, weil Ihre Debug-Umgebung sich auf dem Computer befindet, und der integrierte Debugger automatisch ausgeführt wird.
- Sie können aber optional den "Platform Assistant" und ein Remote-Profil für die Zielplattform verwenden, genauso wie für ein Remote-Zielsystem mit 64-Bit-Windows. Dadurch haben Sie die Möglichkeit, den Bereitstellungs-Manager zu verwenden.
- Bei einer Verbindung zu einem Remote-64-Bit-PC:
- Für Mac OS X:
Auf der Mac OS X-Plattform benötigt der Debugger Dateiberechtigungen
Für das Debuggen unter OS X sind spezielle Berechtigungen erforderlich; nur ein Prozess mit den adäquaten Zugriffsrechten kann als Debugger fungieren. In RAD Studio wird diese Anforderung durch die Codesignatur für die ausführbare Datei dbkosx_16_0 erreicht, die spezielle Zugriffsrechte erfordert. Um die Unterstützung für das Debugging auf dem Mac sicherzustellen, müssen Sie sich im Dialogfeld für den Entwicklertools-Zugriff mit dem Passwort des Administrators oder Root-Benutzers anmelden:
- Wenn Sie den "Platform Assistant" das erste Mal in einer Sitzung starten (oder wenn Sie eine Debugger-Sitzung auf dem Mac starten), wird auf dem Mac ein Anmeldedialogfeld für den Entwicklertools-Zugriff angezeigt. Sie müssen auf dem Mac das Passwort für den Root-Benutzer eingeben. Das Passwort ist pro Sitzung nur einmal erforderlich.
- Weitere Informationen zu der Meldung Berechtigung zur Debugging-Unterstützung wird übernommen finden Sie unter So führen Sie den "Platform Assistant" auf einem Mac aus.
- Bei der Verwendung von SSH oder PuTTY kann ein zusätzlicher Schritt bei der Sicherstellung des Debugging-Zugriffs auf Ihre Mac-Anwendung erforderlich sein:
- Bei dem Versuch, Ihre Anwendung zu debuggen, könnte auf dem Mac die folgende Meldung angezeigt werden:
-
Fehler: Dateiberechtigungen lassen Debugging nicht zu
- Wenn Sie diese Fehlermeldung erhalten (oder wenn das Dialogfeld für den Entwicklertools-Zugriff wiederholt angezeigt wird), müssen Sie dem Debugger ggf. die Berechtigung durch Setzen der Benutzer-ID von
dbkosx_16_0wie folgt zuweisen:
-
sudo chown root dbkosx_16_0 -
sudo chmod u+s,g+x dbkosx_16_0
-
Achtung: Bedenken Sie aber, dass durch die Verwendung diesersudo-Befehle ein signifikantes Sicherheitsrisiko entstehen kann. Treffen Sie daher unbedingt Sicherheitsvorkehrungen: Bewahren Sie eine Kopie der originalendbxosx_16_0-Datei auf. Löschen Sie nach dem Debuggen Ihrer Anwendung diedbxosx_16_0-Datei, für die Sie "uid root" gesetzt haben, und stellen Sie Originaldatei wieder her.
Starten des Debuggers mit einem "Start"-Befehl
Wenn alle Anforderungen für plattformübergreifendes Debugging erfüllt sind, wird durch Eingabe des Befehls Start Folgendes ausgeführt:
- Die benötigten Dateien werden vom Host-PC auf die im Remote-Profil angegebene Zielplattform kopiert.
- Die Anwendung wird in einem für die Plattform geeigneten Debugger ausgeführt.
Wenn beispielsweise OS X die aktive Plattform ist, wird die ausführbare Datei auf den Mac kopiert.
Sie können mit einem beliebigen Standard-Start-Befehl das Debugging einer plattformübergreifenden Anwendung (für OS X oder Win64) starten:
- Start > Start (F9) (compiliert die Anwendung und führt sie im integrierten Debugger aus)
- Start > Gesamte Routine (F8)
- Start > Einzelne Anweisung (F7)
- Start > Ausführung bis Rückkehr (Umsch+F8)
- Start > Bis Cursorposition ausführen (F4)
Starten des Debuggers mit "Mit Prozess verbinden" und "Prozess laden: Lokal/Extern"
Zum Ausführen und Debuggen einer compilierten Binärdatei auf der Zielplattform (entweder einem Remote-PC oder einem Mac), können Sie die folgenden Befehle verwenden:
- Mit Prozess verbinden, um einen lokal oder remote ausgeführten Prozess zu debuggen. Die Verwendung des "Platform Assistant" und eines Remote-Profils wird hier empfohlen.
- Prozess laden: Lokal, um einen lokalen Debug-Prozess zu laden.
- Prozess laden: Extern, um einen Debug-Prozess zu laden und ihn auf einer Remote-Zielplattform auszuführen (mit einigen Einschränkungen bezüglich Remote-Profilen). Die Verwendung des "Platform Assistant" und eines Remote-Profils wird hier empfohlen.
