2012-07-25 7 views
12

Ich erhalte manchmal diesen Absturz Bericht:Wie zu verstehen und Crash-Bericht zu lösen: SIGSEGV, SEGV_ACCERR

Name: SIGSEGV 
Reason: SEGV_ACCERR 
Stack Trace: 

0 MyApp 0x00070456 0x1000 + 455766 
1 MyApp 0x0007a34d 0x1000 + 496461 
2 MyApp 0x0007a4f1 0x1000 + 496881 
3 MyApp 0x000d31dd 0x1000 + 860637 
4 MyApp 0x00067f0f 0x1000 + 421647 
5 MyApp 0x0005ad69 0x1000 + 367977 
6 MyApp 0x000081e3 0x1000 + 29155 
7 MyApp 0x00008ae9 0x1000 + 31465 
8 CoreFoundation 0x35a547e4 __invoking___ + 68 
9 CoreFoundation 0x359af7b1 -[NSInvocation invoke] + 160 
10 Foundation 0x3556268f -[NSInvocationOperation main] + 114 
11 Foundation 0x354fb393 -[__NSOperationInternal start] + 862 
12 Foundation 0x35564793 __block_global_6 + 102 
13 libdispatch.dylib 0x348dec59 _dispatch_call_block_and_release + 12 
14 libdispatch.dylib 0x348e1817 _dispatch_worker_thread2 + 258 
15 libsystem_c.dylib 0x32e0edfb _pthread_wqthread + 294 

ich diesen Crash-Bericht nicht verstehen. Ich weiß auch nicht, wann das passiert.

Gibt es eine Möglichkeit, mehr über diesen Absturz herauszufinden?

Wie kann ich dieses Problem lösen?

+0

Sie müssen den Absturzbericht symbolisieren, der die Adressen in Zeile 0 bis 7 in sinnvolle Klassen, Methoden und Zeilennummern konvertiert. Normalerweise macht Xcode das automatisch, wenn Sie immer noch die Binärdatei des Builds haben, der den Absturz verursacht hat. Haben Sie versucht, den Bericht in den Xcode-Organizer zu importieren, um ihn symbolisiert zu bekommen? Wie hast du diesen Bericht bekommen? – Kerni

+0

@Kerni Ich bekomme den Absturzbericht von crittercism.com. Ich benutze das Crittercism SDK für iOS. Ich sehe, dass die App auf einigen Geräten abstürzt und den Login in meinem Post bekommt. Ich kann den Bericht herunterladen, aber es ist eine Textdatei. Wenn ich das nach xcode ziehe und ablege, öffnet es die Textdatei. was soll ich machen? – brush51

+0

@Kerni danke für Ihre Antwort. Ich habe es symbolisiert und jetzt habe ich den Punkt, wo es abstürzt. Bitte schreibe es als Antwort, damit ich es als beantwortet markieren kann. – brush51

Antwort

6

Sie benötigen zu sy moble den Crash-Report, der die Adressen in Zeile 0 bis 7 in sinnvolle Klassen, Methoden und Zeilennummern umwandelt. Normalerweise macht Xcode das automatisch, wenn Sie immer noch die Binärdatei des Builds haben, der den Absturz verursacht hat.

2

Der SIGSEV Fehler ist ein Signal senden, wenn Sie versuchen, Speicher zu erhalten, die es nicht erlaubt ist

Der beste Weg, zu berühren, dieses Problem zu lösen, ist ein Haltepunkt und Sprung Zeile pro Zeile in Ordnung zu bringen das finden Linie, die das Problem

ist, oder Sie können auch einige Debug-Protokolle gesetzt wurden, um das Problem

Für verstehen, was SIGSEV oder SEGV_ACCERR bedeuten, können Sie im Internet weitere Informationen suchen, um zu sehen;)

+47

Meine Suche im Internet führte mich hier :( – Saltymule

+3

Ich suchte auch nach SIGSEV und es brachte mich hier. Anstatt uns zu sagen, das Internet zu suchen, geben Sie nicht Sie eine Zusammenfassung? –

+0

Diese Antwort könnte etwas Licht zu werfen http://Stackoverflow.com/a/25877766/192924 – Vamos

1

Frage ist alt, aber es gibt einen besseren Weg als John Smith Antwort.

Momentan wird der beste Ansatz mit Profiler (in XCode: Produkt/Profil) unter Verwendung der entsprechenden Vorlage ausgeführt.
Höchstwahrscheinlich müssen Sie "Zombies" Vorlage verwenden, die jetzt auch auf Gerät unterstützt wird :) nicht nur auf Emulator. Wenn Sie dieses Tool verwenden, haben Sie größere Chancen, eine falsche Speicherbelegung zu erkennen.

Verwandte Themen