Comment déboguer EXC_BAD_ACCESS bug
J'ai reçu un message d'erreur
EXC_BAD_ACCESS code=2 at0xb0987654
Je me demande comment faire pour imprimer la valeur à 0xb0987654?
- Je suppose que vous ne voulez pas imprimer la valeur à cette adresse car l'adresse est votre problème en premier lieu. Qu'est ce qu'il y a la question à se poser.
Vous devez vous connecter pour publier un commentaire.
Pour déboguer une EXC_BAD_ACCESS, vous pouvez généralement trouver le où le balançant pointeur est en permettant zombie objets.
Xcode
Choisissez modifier le régime, puis onglet Diagnostics de l'Exécution de la section, puis cliquez sur le "Zombie Objets" option.
AppCode
Choisissez modifier la cible, et ajouter la variable d'environnement suivante:
Une autre cause pour EXC_BAD_ACCESS peut être une récursion infinie, qui peut être trouvé par l'ajout de certains enregistrement.
Mise à jour pour le C++:
Pour déboguer balançant les pointeurs en C++ avec le compilateur Clang essayez d'utiliser Adresse Désinfectant (ASAN) de Google.
-fsanitize
..Il ressemble peut-être que vous essayez d'écrire sur une page de code ou quelque chose? EXC_BAD_ACCESS est décrit dans le fichier /usr/include/mach/exception_types.h:
Et de kern_return.h:
Vous pouvez voir OÙ cette adresse est à votre binaire par:
Mais ce que vous avez vraiment besoin de savoir qui est en train d'essayer d'y écrire. Si le problème est simple, cela pourrait vous dire ce qui est faux, mais que Jasper l'indique, c'est probablement un peu use-after-free ou autre un tel problème, et le mauvais acteur est loin le temps de vous planter. guardmalloc peut aussi parfois attraper ce genre d'erreur (vous pouvez activer cette fonction dans Xcode dans le système.)
image lookup -va 0x1586470c4
dans lldb me donne pas de sortie du tout, même pas un message d'erreur.Identifier ce que vous avez fait qui a causé le crash. Il l'a fait arrêter lors de l'affichage d'un point de vue particulier contrôleur didLoad ou dans un délégué de la méthode ou sur une action particulière. Qui va souvent aider à trouver l'objet qui est casuing l'erreur.
J'espère que cela va vous aider.
Ce qui concerne,
Gison