J'ai reçu une erreur
EXC_BAD_ACCESS code = 2 at0xb0987654
Je me demande comment imprimer la valeur à 0xb0987654?
Pour déboguer un EXC_BAD_ACCESS, vous pouvez généralement savoir où se trouve le pointeur suspendu en activant les objets zombie.
Xcode
Choisissez modifier le schéma, puis cliquez sur l'onglet Diagnostics dans la section Exécuter, puis cliquez sur l'option "Objets Zombie".
AppCode
Choisissez la cible d'édition et ajoutez la variable d'environnement suivante:
NSZombieEnabled=YES
Une autre cause de EXC_BAD_ACCESS peut être une récursion infinie, qui peut être trouvée en ajoutant une journalisation.
Mise à jour pour C++:
Pour déboguer des pointeurs en suspens en C++ avec le compilateur Clang, essayez d’utiliser Address Sanitizer (ASAN) de Google.
On dirait que vous essayez peut-être d'écrire sur une page de code ou quelque chose de ce genre? EXC_BAD_ACCESS est décrit dans /usr/include/mach/exception_types.h:
#define EXC_BAD_ACCESS 1 /* Could not access memory */
/* Code contains kern_return_t describing error. */
/* Subcode contains bad memory address. */
Et de kern_return.h:
#define KERN_PROTECTION_FAILURE 2
/* Specified memory is valid, but does not permit the
* required forms of access.
*/
Vous pouvez voir où cette adresse est dans votre binaire en faisant:
(lldb) image lookup -va 0xb0987654
Mais ce qu'il faut vraiment savoir, c'est qui essaie d'y écrire. Si le problème est simple, cela peut vous dire ce qui ne va pas, mais comme le suggère Jasper, il s’agit probablement d’un problème lié à un usage gratuit ou à un autre, et le mauvais acteur a disparu depuis longtemps lorsque vous vous bloquez. guardmalloc peut aussi parfois intercepter ce type d'erreur (vous pouvez l'activer dans Xcode dans le schéma Run.)
Identifiez ce que vous avez fait pour causer le crash. Est-ce qu'il s'est bloqué lors de l'affichage d'un contrôleur de vue particulier dans une méthode déléguée ou lors d'une action particulière. Cela aidera souvent à trouver l’objet qui cause l’erreur.
J'espère que cela t'aidera.
Cordialement, Gison