2010-04-06 5 views

Répondre

1

S'il n'y a pas trace de pile ou quoi que ce soit et qu'il se ferme, il s'agit probablement d'un problème de mémoire. Votre application a demandé trop de mémoire et le système d'exploitation l'a éteint.

Rechercher des fuites de mémoire, et de regarder les zones qui pourraient affecter d'énormes morceaux de mémoire (des choses comme la manipulation de données d'image peut-être)

utilisent également les Object Allocations et Leaks instruments pour surveiller l'utilisation de la mémoire et de rechercher des fuites, respectivement.

0

Ceci est probablement un problème de mémoire, ce que vous devez faire sont les suivantes:

  • Dans la course de menu, sélectionnez Gérer les points d'arrêt -> Ajouter symbolique Breakpoint -> entrez: obj_exception_thrown. (Cela devrait vous permettre de voir où se termine l'application dans votre code.)
  • Essayez de rechercher les variables sur-validées à partir des points d'arrêt. Cela peut être difficile à trouver. Voici un indice: Si vous utilisez les méthodes de classe pour allouer et initialiser une variable e.s [NSString stringWithFormat], cette variable sera libérée par le pool, vous n'avez donc pas besoin de l'appeler [release].
  • Si tous les ci-dessus échoue, essayez la procédure suivante: Dans la fenêtre du projet, sous Groupes & Fichiers -> Exécutables -> Get Info -> Arguments -> ajouter deux variables: NSZombieEnabled & MallocStackLogging YES. (Cela activera la journalisation de la pile d'allocation de mémoire dans un fichier temporaire, vous devriez alors pouvoir voir le journal des variables surchargées) Dans la fenêtre de console de l'application de débogage, tapez: $ shell malloc_history {processid} {address} (Ici, vous devriez être capable de voir à partir de quelles méthodes provoquent les variables surchargées).
Questions connexes