Débogage des apps iOS

De RAD Studio
Aller à : navigation, rechercher

Remonter à Débogage des applications multi-périphériques

RAD Studio permet de déboguer depuis l'EDI des apps iOS exécutées sur le simulateur iOS (uniquement disponible dans Delphi) ou le périphérique iOS. Pour les apps iOS, l'expérience de débogage depuis l'EDI est similaire au débogage d'applications Windows ou macOS dans RAD Studio. Toutefois, la fonctionnalité du débogueur qui est disponible varie selon la plate-forme cible et le système d'exploitation. Ainsi, le débogueur utilisé pour la plate-forme cible Simulateur iOS (système d'exploitation macOS) dispose de plus de fonctionnalités dans l'EDI que celui utilisé pour les plates-formes cible Périphérique iOS - 32 bits et Périphérique iOS - 64 bits (système d'exploitation iOS).

Les sections suivantes décrivent les fonctionnalités du débogueur disponibles selon qu'il est utilisé avec le simulateur iOS, le périphérique iOS 32 bits ou le périphérique iOS 64 bits.

Simulateur iOS : débogage d'apps exécutées sur le simulateur iOS

En règle générale, ce débogueur offre plus de fonctionnalités que celui utilisé avec le périphérique iOS.

L'évaluation et la modification des propriétés sont complètement supportées sur le simulateur iOS.

Remarque : Le débogage d'applications sur le simulateur iOS est uniquement disponible pour Delphi.

Périphérique iOS : débogage d'apps exécutées sur le périphérique iOS

Les fonctionnalités des débogueurs relatifs au périphérique iOS 32 bits et au périphérique iOS 64 bits diffèrent de celles des débogueurs Windows.

Dans la Fenêtre Modules

  • La saisie de fonction n'est pas supportée.
  • Les colonnes Point d'entrée et Adresse ne sont pas remplies. (Le menu contextuel Point d'entrée est vide.)

Dans l'inspecteur de débogage

  • Seule la colonne Données est remplie.
  • Les méthodes et les propriétés ne sont pas affichées.

Résolution des erreurs bfd_mach_o_scan_read

Après une mise à jour vers une nouvelle version de SDK ou de système d'exploitation, il se peut que des avertissements de ce type s'affichent :

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

Ces avertissements se produisent parce que le débogueur utilise des bibliothèques SDK au lieu des bibliothèques du périphérique réel. Pour resynchroniser les fichiers, exécutez votre projet iOS à partir des modèles de projets iOS Xcode (une app iOS vide, par exemple). Les avertissements devraient disparaître. Dans le cas contraire, ils cesseront d'apparaître une fois que le périphérique aura été mis à niveau vers la prochaine version mineure d'iOS. Ces avertissements n'ont aucun impact sur l'expérience de débogage.

Lorsqu'une app iOS est exécutée sans débogage, elle peut ne pas s'arrêter

L'exécution d'une app sur le périphérique iOS sans effectuer de débogage peut ne pas provoquer l'arrêt de l'exécution de l'app car l'installateur iOS est toujours attaché au programme. Il se peut que votre app iOS ne s'arrête pas car le débogueur n'est pas exécuté et ne peut donc pas arrêter l'app.

Dans ce cas, vous devez fermer l'instance de PAServer connectée sur le Mac. (Entrez la commande q à l'invite PAServer, >).

Débogage d'apps exécutées sur le périphérique iOS 64 bits

Certaines fonctionnalités disponibles lors du débogage de vos applications pour le périphérique iOS 32 bits diffèrent de celles disponibles lors du débogage d'applications pour le périphérique iOS 64 bits :

  • Le débogueur ne prend pas en charge l'évaluation de plusieurs types Delphi, comme les tableaux dynamiques ou les objets dotés de méthodes virtuelles et hérités de TObject.
  • Les conseils sont désactivés.
  • La syntaxe Delphi n'est pas totalement prise en charge pour évaluer les expressions Delphi ; vous devez utiliser la syntaxe C++ comme solution de contournement.
  • Les identificateurs Delphi sont sensibles à la casse. Lors des opérations d'évaluation, vous devez utiliser la même casse que dans le source.
  • La protection contre les évaluations pouvant déclencher des exceptions n'est pas prise en charge. Faites en sorte de ne pas évaluer de fonctions accédant à des données non initialisées ou déclenchant des exceptions.

Si vous devez déboguer en utilisant les options mentionnées ci-dessus, nous vous recommandons de définir si possible le périphérique iOS 32 bits comme plate-forme cible.

Voir aussi