2010-10-20 4 views
5

J'ai vu que mon application tombe en panne lorsqu'elle est utilisée avec l'instrument d'allocation. Lorsque je regarde les journaux de l'appareil, je peux dire qu'il s'agit d'un crash «Mémoire faible». Mon processus d'application, en plus des autres applications utilisées par mon application, a été abandonné. Voici comment les journaux de l'appareil regardent:L'application se bloque lorsqu'elle est utilisée avec Allocations Instrument

MyAPP <09da004ccd82e7a2c54e0ea6ab4eab24> 1990 (jettisoned) (active) 
MobilePhone <6d3241e15be58311a76700272febc6d4>  635 (jettisoned) 
    accessoryd <6a25188f645a24b167cda5e0a86d486a>  121 (jettisoned) 

Je ne rencontre pas de plantages lorsque l'application est en cours d'exécution sans instruments et l'application est perçue par les utilisateurs d'être performant. Je me suis concentré sur la résolution de ce problème pendant quelques jours (à peu près tout mon code est commenté pour trouver le problème).

Ma question est la suivante: L'application peut-elle se bloquer lorsqu'elle est utilisée avec des instruments, ce qui pose un problème à l'utilisateur final? Ou est-ce que cela ne va me causer des problèmes lors du débogage des problèmes de mémoire?

Remarque 1: Je n'interagis pas du tout avec l'application lorsque je l'utilise avec des instruments. Il charge un contrôleur de vue, effectue un appel de service asynch qui renvoie les résultats qui sont ensuite remplis dans deux vues de table. Pas beaucoup à libérer car les objets sont toujours nécessaires.

Remarque 2: Voici un extrait des listes d'objets LIVE des instruments d'allocation (triés par taille dans l'ordre décroissant) lorsque l'application se bloque. Comme vous pouvez le voir MYAPP est pas vraiment l'auteur principal (apparemment)

Size(bytes) Responsible Library Responsible Caller 
131072 UIKit -[UIView(Internal) _subclassImplementsDrawRect] 
45056 CoreGraphics  zone_malloc 
16384 libCGFreetype.A.dylib ft_allocate 
11264 Foundation NSPopAutoreleasePool 
8192 libCGFreetype.A.dylib ft_allocate 
8192 Foundation NSLogv 
7680 libCGFreetype.A.dylib ft_allocate 
7680 libCGFreetype.A.dylib ft_allocate 
7680 CoreGraphics argb32_mark_constmask 
5120 CoreGraphics CGDataProviderCreateWithCopyOfData 
4608 libCGFreetype.A.dylib ft_allocate 
4608 libCGFreetype.A.dylib ft_allocate 
4608 libCGFreetype.A.dylib ft_allocate 
4096 libSystem.B.dylib __stack_chk_fail 
4096 QuartzCore CA::Transaction::create() 
4096 Foundation NSPushAutoreleasePool 
4096 MYAPP -[CJSONScanner scanNotQuoteCharactersIntoString:] 

Merci

+0

sans voir votre code, il n'est pas possible de conclure quoi que ce soit avec 100% de certitude. –

+0

qu'est-ce que vous aimeriez voir dans le code? – amehta

Répondre

0

J'ai eu un problème similaire avant. Il s'est avéré que j'utilisais la mémoire non initialisée. Running with Allocations a changé la valeur de la mémoire qui a causé le plantage.

+0

Comment avez-vous trouvé cela, y avait-il un outil que vous avez utilisé? Quand Instruments se bloque, cela ne fournit pas vraiment d'informations utiles, donc je suis coincé. – leetNightshade