Probleme mit einem Crash Report - - EXC_BAD_ACCESS
OK, ALSO ich habe einen crash-Bericht für eine meiner apps, aber ich schwöre, ich bin 100% verwirrt.
Dies ist, was der "Kern" - Teil sieht es so aus :
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
VM Regions Near 0:
-->
__TEXT 0000000100000000-0000000100015000 [ 84K] r-x/rwx SM=COW /Applications/MY_APP/Contents/MacOS/MY_APP
Application Specific Information:
objc[337]: garbage collection is ON
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_c.dylib 0x00007fff90128650 strlen + 16
1 MY_BUNDLE_ID 0x0000000100008f12 0x100000000 + 36626
2 MY_BUNDLE_ID 0x000000010000b435 0x100000000 + 46133
3 MY_BUNDLE_ID 0x0000000100003c90 0x100000000 + 15504
4 com.apple.CoreFoundation 0x00007fff9065147a _CFXNotificationPost + 2554
5 com.apple.Foundation 0x00007fff8e5fe846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
6 com.apple.AppKit 0x00007fff9a7894a7 -[NSTableView textDidChange:] + 377
7 com.apple.CoreFoundation 0x00007fff9065147a _CFXNotificationPost + 2554
8 com.apple.Foundation 0x00007fff8e5fe846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
9 com.apple.AppKit 0x00007fff9a15c260 -[NSTextView(NSSharing) didChangeText] + 339
10 com.apple.AppKit 0x00007fff9a7f8381 _NSDoUserReplaceForCharRange + 390
11 com.apple.AppKit 0x00007fff9a7f85b1 _NSDoUserDeleteForCharRange + 38
12 com.apple.AppKit 0x00007fff9a7e1e72 -[NSTextView(NSKeyBindingCommands) deleteBackward:] + 440
13 com.apple.AppKit 0x00007fff9a18a1cc -[NSResponder doCommandBySelector:] + 75
14 com.apple.AppKit 0x00007fff9a18a02e -[NSTextView doCommandBySelector:] + 197
15 com.apple.AppKit 0x00007fff9a20cf4e -[NSKeyBindingManager(NSKeyBindingManager_MultiClients) interpretEventAsCommand:forClient:] + 2200
16 com.apple.AppKit 0x00007fff9a20c3bb -[NSTextInputContext handleEvent:] + 939
17 com.apple.AppKit 0x00007fff9a20bf87 -[NSView interpretKeyEvents:] + 183
18 com.apple.AppKit 0x00007fff9a158f67 -[NSTextView keyDown:] + 723
19 com.apple.AppKit 0x00007fff9a374120 -[NSWindow sendEvent:] + 9687
20 com.apple.AppKit 0x00007fff9a36f744 -[NSApplication sendEvent:] + 5761
21 com.apple.AppKit 0x00007fff9a2852fa -[NSApplication run] + 636
22 com.apple.AppKit 0x00007fff9a229cb6 NSApplicationMain + 869
23 MY_BUNDLE_ID 0x0000000100002014 0x100000000 + 8212
Haben Sie eine Idee, was könnte schief gehen?
Oder könnten Sie einfach zeigen Sie mir die richtige Richtung?
Nebenbei :
Könnte jemand mich leiten, wie man z.B. 0x00007fff90128650
mehr... sinnvoll und machen es (in einem zukünftigen crash-Bericht) auch den Namen der Funktion?
Sie müssen symbolicate dieser crash report-so können Sie die Bezüge zu Ihrer eigenen code. Die Linien 1, 2 und 3 der stack-trace sind von Ihrer eigenen app. Sobald Sie symbolicate dieses Berichts werden Sie sehen genau, welche code-Zeile verursacht das problem.
Und... wie mache ich das? Ich gebe zu, ich weiß fast nichts über die Nutzung von crash-reports, tun mir einige Richtlinien oder verweist mich an irgendein Stück von Referenz wäre ideal. Vielen Dank! 🙂
Suchen Sie im Technischen Hinweis TN2151 in der Dokumentation. Es wird erklärt, wie dies zu tun.
Vielen Dank! Ich studiere es jetzt.
Gerade bemerkt : ich habe all die Dinge beschrieben, aber ich dann erkannte, war dies ein iOS-spezifischen Ansatz. Mein Fehlerbericht für Mac OS X, nicht wahr?
Und... wie mache ich das? Ich gebe zu, ich weiß fast nichts über die Nutzung von crash-reports, tun mir einige Richtlinien oder verweist mich an irgendein Stück von Referenz wäre ideal. Vielen Dank! 🙂
Suchen Sie im Technischen Hinweis TN2151 in der Dokumentation. Es wird erklärt, wie dies zu tun.
Vielen Dank! Ich studiere es jetzt.
Gerade bemerkt : ich habe all die Dinge beschrieben, aber ich dann erkannte, war dies ein iOS-spezifischen Ansatz. Mein Fehlerbericht für Mac OS X, nicht wahr?
InformationsquelleAutor Dr.Kameleon | 2012-10-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre crash-log geben Ihnen viele Informationen:
ersten Sie stürzte, weil Sie versucht haben, um Zugriff auf Adresse 0 in ur-Programm und kernel ist nicht glücklich.
Sehen, Sie bekommen eine Segmentierung, die von der Art, wie es ab der Adresse 0x00, so wie Sie sind, direkt auf eine 0 /null-Zeiger.
Wie diese
Sollten Sie wirklich auf diese zu konzentrieren.
Aus der crash-stack gibt es drei interessante Dinge:
[textDidChange] ist einer der letzten Anrufs, die den Absturz verursacht hat, durch die Art und Weise Sie senden eine Benachrichtigung, wenn die [textDidChange] ausgelöst wird. Und die Letzte Zeile, die tatsächlich machen, der Absturz: strlen + 16 ist, weil es etwas gibt, die denken, es können einen char der Länge von ein Gültiger Zeiger-Adresse und es ist tatsächlich nicht der Fall.
Nach mir, sollten Sie überprüfen, was Sie senden in Ihrer Mitteilung.
Wenn man sich tief in den stack zum Absturz, es scheint wirklich, dass es erscheint, wenn Sie cell - insertion /deletion in ur tableViewController. Sie sollten überprüfen, dass irgendwann jemand push-ungültige Daten, oder nicht über die Zelle Bearbeiten wie es sein soll.
So, hier ist die Fortsetzung:
1 Jemand Bearbeiten einer tableViewCell, er kümmert sich nicht einfügen, oder den code nicht einfügen, was es sein soll.
2 Du bist das senden einer Mitteilung mit einem nicht gültigen Daten drin.
3, Wenn die strlen(invalid_dataStructure) ausgelöst wird, ist es ur-app crash
Übrigens bin ich nur "raten", da ich nicht weiss, eigentlich ist dein code-Implementierung. Aber ich hoffe, es kann Ihnen viele Hinweise für Ihre debugging-Sitzung.
InformationsquelleAutor Mr Bonjour
In der Regel das problem ist, dass Sie brauchen eine "behalten" - Eigenschaft.
Müssen Sie Zombies für den debug-Modus.
in xCode 4 klicken Sie auf "Bearbeiten " Schema"->"Diagnose"->"Aktivieren Zombie-Objekte"
Wird es zeigen Sie in der Konsole, was "entfernt" - Objekts, die Sie versuchen, zuzugreifen, wenn es abstürzt.
helfen sollte.
sehen Sie so etwas wie dieses:
Können Sie auch die "Malloc logging" und nach dem crash geben Sie solchen Befehl in der debug-Konsole:
dort finden Sie alle alloc/release-stack. schauen Sie nur auf die release-und alloc-Befehle.
Es ist ein problem.) für mich der beste Weg ist, zu bitten, die Schritte zu reproduzieren und zu versuchen, ihn zu reproduzieren lokal.
"In der Regel das problem ist, dass Sie brauchen eine "behalten" - Eigenschaft". Eigentlich nicht, denn die Ausnahme-Codes: KERN_INVALID_ADDRESS bei 0x0000000000000000 ist wirklich nicht pointin an einige Müll-Zeiger-Wert
InformationsquelleAutor Remizorrr
Bekam ich einen sehr ähnlichen crash-Bericht zu öffnen versucht, Grafik-lastigen Anwendungen (pymol und Blässhuhn (Siehe unten)
Fand ich heraus, dass, wenn ich mich getrennt, meinen mac von meiner externen monitor, der Programme funktionierte wieder. Ich war mit einem USB-HDMI-Anschluss - anscheinend ist dies eine schlechte Idee. Ich habe gerade gekauft ein microUSB-HDMI-Anschluss und ich erwarte, dass dies besser funktioniert. Die Programme laufen, wenn ich gerade meinen mac book monitor-Anzeige.
InformationsquelleAutor NicoWheat