2010-10-20 12 views
5

Ich habe gesehen, dass meine App abstürzt, wenn sie mit dem Zuweisungsinstrument verwendet wird. Wenn ich mir die Geräteprotokolle anschaue, kann ich feststellen, dass es sich um einen "Low Memory" -Abfall handelt. Mein App-Prozess wurde zusätzlich zu den von meiner App verwendeten Apps über Bord geworfen. Hier ist, wie protokolliert das Gerät aussehen:App stürzt ab, wenn sie mit Zuweisungen verwendet wird. Instrument

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

begegne ich keine Abstürze, wenn die App ohne Instrumente ausgeführt wird und die App von den Nutzern wahrgenommen wird performant zu sein. Ich habe mich darauf konzentriert, dieses Problem für ein paar Tage zu lösen (so ziemlich mein Code wird kommentiert, um das Problem zu finden).

Meine Frage ist - Könnte die App zusammenstoßen, wenn sie in Verbindung mit Instrumenten ein Problem für den Endbenutzer darstellt? Oder verursacht das nur Probleme beim Debugging von Speicherproblemen?

Hinweis 1: Ich habe keine Interaktion mit der App, wenn Sie sie mit Instrumenten verwenden. Es lädt einen Ansichtscontroller, führt einen asynchronen Serviceaufruf durch, der Ergebnisse zurückgibt, die dann in zwei Tabellenansichten gefüllt werden. Es gibt nicht viel zu entziehen, da die Objekte immer noch benötigt werden.

Hinweis 2: Hier ist ein Ausschnitt von LIVE-Objektlisten aus den Allocations Instruments (sortiert nach Größe in der Reihenfolge), wenn die App abstürzt. Wie Sie sehen können MYAPP ist nicht wirklich der Haupttäter (scheinbar)

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:] 

Dank

+0

Ohne Ihren Code zu sehen, ist es nicht möglich, irgendetwas mit 100% Sicherheit abzuschließen. –

+0

Was genau möchten Sie im Code sehen? – amehta

Antwort

0

ich vor ein ähnliches Problem gehabt haben. Es stellte sich heraus, dass ich nicht initialisierten Speicher verwendete. Das Ausführen mit Zuordnungen hat den Wert des Speichers geändert, der den Absturz verursacht hat.

+0

Wie hast du das herausgefunden? Gab es ein Werkzeug, das du benutzt hast? Wenn Instrumente abstürzen, liefert es nicht viel nützliche Informationen, also bleibe ich irgendwie stecken. – leetNightshade

Verwandte Themen