Debuggen von iOS-Apps

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Debuggen von geräteübergreifenden Anwendungen

Mit RAD Studio können Sie in der IDE iOS-Apps debuggen, die auf dem iOS-Gerät ausgeführt werden. Das Debuggen von iOS-Apps in der IDE entspricht weitgehend dem Debuggen von Windows- oder macOS-Anwendungen in RAD Studio. Die verfügbaren Debugger-Funktionen hängen aber von der jeweiligen Zielplattform und dem Betriebssystem ab.

In den folgenden Abschnitten ist die Verfügbarkeit von Debugger-Funktionen für das iOS-Gerät - 64 Bit beschrieben.

iOS-Gerät: Debuggen von Apps, die auf dem iOS-Gerät ausgeführt werden

Beachten Sie, dass sich die Funktionalität der Debugger für iOS-Geräte von derjenigen der Windows-Debugger unterscheidet.

  • Methoden können nicht untersucht werden (wird nicht unterstützt).

Fenster "Module"

  • Der Funktionseintritt wird nicht unterstützt.
  • Die Spalten Eintrittspunkt und Adresse werden nicht mit Daten gefüllt (das Kontextmenü Eintrittspunkt ist leer).

Debug-Inspektor

  • Nur die Spalte Data wird gefüllt.
  • Methoden und Eigenschaften werden nicht angezeigt.

Auflösen von bfd_mach_o_scan_read-Fehlern

Nach der Aktualisierung auf ein neues SDK oder eine neue Betriebssystemversion können Warnungen wie die folgenden angezeigt werden:

bfd_mach_o_scan_read_symtab_symbol: symbol "_strcmp" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_bzero" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_strchr" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memset_pattern16" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memcpy" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memcmp" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memchr" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memccpy" is unsupported 'indirect' reference: setting to undefined
bfd_mach_o_scan_read_symtab_symbol: symbol "_memset_pattern8" is unsupported 'indirect' reference: setting to undefined

Diese Warnungen treten auf, weil der Debugger SDK-Bibliotheken anstelle der aktuellen Gerätebibliotheken verwendet. Führen Sie Ihr iOS-Projekt aus Xcode iOS-Projektvorlagen (z. B. "Leere iOS-App") aus, um die Dateien wieder zu synchronisieren. Die Warnungen sollten danach nicht mehr angezeigt werden. Falls nicht, verschwinden die Warnungen, nachdem das Gerät auf die nächste Unterversion von iOS aktualisiert wurde. Diese Warnungen beeinträchtigen den Debug-Vorgang nicht.

Bei der Ausführung ohne Debugger wird eine iOS-App möglicherweise nicht beendet

Beim Ausführen einer App auf dem iOS-Gerät ohne Debugger verbleibt die App möglicherweise im Ausführungszustand, weil das iOS-Installationsprogramm noch mit dem Programm verbunden ist. Die iOS-App wird eventuell nicht beendet, wenn Sie sie schließen, weil der Debugger nicht ausgeführt wird, und die App daher nicht angehalten werden kann.

In diesem Fall sollten Sie die verbundene PAServer-Instanz auf dem Mac schließen. (Geben Sie an der PAServer-Eingabeaufforderung > den Befehl q ein.)

Debuggen von Apps, die auf dem 64-Bit-iOS-Gerät ausgeführt werden

Bitte beachten Sie die folgenden Informationen beim Debuggen von Anwendungen für iOS-Gerät - 64 Bit:

  • Der Debugger unterstützt die Auswertung vieler Delphi-Typen, wie dynamische Arrays oder Objekte mit virtuellen von TObjectabgeleiteten Methoden, nicht.
  • Tooltips sind deaktiviert.
  • Die Delphi-Syntax wird beim Auswerten von Delphi-Ausdrücken nicht vollständig unterstützt; verwenden Sie als Problemumgehung die C++-Syntax.
  • Delphi-Bezeichner berücksichtigen die Groß-/Kleinschreibung; Sie müssen bei der Auswertungdieselbe Schreibweise verwenden.
  • Der Schutz vor Auswertungen, die Exceptions auslösen können, wird nicht unterstützt; achten Sie darauf, keine Funktionen auszuwerten, die auf nicht initialisierte Daten zugreifen oder Exceptions auslösen.
Hinweis: Zusätzliche gemeinsame Bibliotheken werden in den iOS64-Debugger geladen. Diese gemeinsamen Bibliotheken werden vom Debugger gesteuert und können ignoriert werden. Einige solcher Bibliotheken sind:
  • __lldb_apple_objc_v2_get_dynamic_class_info
  • __lldb_caller_function
  • __lldb_apple_objc_v2_get_shared_cache_class_info
  • __lldb_caller_function
Hinweis: Möglicherweise stellen Sie fest, dass im iOS64-Debugger zusätzliche Threads ausgeführt werden. Diese zusätzlichen Threads werden vom Debugger gesteuert und können ignoriert werden.

Siehe auch