J'obtiens beaucoup de sorties de console comme celle-ci sans que mon application ne plante:
malloc: * erreur pour l'objet 0xc6a3970: le pointeur en cours de libération n'a pas été alloué * définir un point d'arrêt dans malloc_error_break pour déboguer
Comment puis-je savoir quel objet ou quelle variable est concerné?
J'ai essayé de définir un point d'arrêt symbolique comme celui-ci mais cela ne s'arrête jamais:
Réponses:
Définissez un point d'arrêt sur malloc_error_break () en ouvrant le navigateur de point d'arrêt (Affichage-> Navigateurs-> Afficher le navigateur de point d'arrêt ou ⌘7), en cliquant sur le bouton plus dans le coin inférieur gauche et en sélectionnant "Ajouter un point d'arrêt symbolique". Dans la fenêtre contextuelle qui apparaît, entrez
malloc_error_break
dans le champ Symbole, puis cliquez sur Terminé.EDIT: openfrog a ajouté une capture d'écran et a indiqué qu'il avait déjà essayé ces étapes sans succès après avoir publié ma réponse. Avec cette modification, je ne sais pas quoi dire. Je n'ai pas vu cela échouer moi-même, et en effet je garde toujours un point d'arrêt sur l'ensemble de malloc_error_break.
la source
UIImage
un fichier sauvegardé et que j'écrasais le fichier avec une image différente. Cela a provoqué une erreur lorsque j'ai appeléUIImagePNGRepresentation
l'image d'origine (pas lorsque le fichier a été réellement écrasé).⌘7
barre ... Peut-être que vous vouliez dire⌘8
?Dans votre capture d'écran, vous n'avez spécifié aucun module: essayez de paramétrer "libsystem_c.dylib"
J'ai fait ça, et ça marche: le point d'arrêt s'arrête ici (bien que le stacktrace surgisse souvent d'une obscure bibliothèque système ...)
la source
libsystem_malloc.dylib
. Breakpoint fonctionne pour moi sans spécifier de module.J'ai eu le même problème avec Xcode. J'ai suivi les étapes que vous avez données et cela n'a pas fonctionné. Je suis devenu fou parce que dans chaque forum que j'ai vu, tous les indices pour ce problème sont ceux que vous avez donnés. J'ai finalement vu que j'avais mis un espace après le malloc_error_break, je l'ai supprimé et maintenant ça marche. Un problème stupide mais si la solution ne fonctionne pas, assurez-vous de ne pas mettre d'espace avant et après le malloc_error_break.
J'espère que ce message vous aidera.
la source
J'avais donné des autorisations que je ne devrais pas avoir à écrire dans certains dossiers (en particulier / usr / bin /), et cela a causé le problème. Je l'ai corrigé en ouvrant l'Utilitaire de disque et en exécutant «Réparer les autorisations de disque» sur le disque dur Macintosh.
la source
Je le résous par un inspecteur de safari proche. Reportez-vous à mon message . J'ai également trouvé du son parfois lorsque j'exécute mon application pour tester, puis j'ouvre le safari avec l'inspecteur automatique, après cela, je fais une action dans mon application, puis ce problème s'est déclenché.
la source