Objective-C iPhone-App EXC_BREAKPOINT (SIGTRAP)
Ich veröffentlichte vor kurzem eine Anwendung über einen Monat her, es wurde gründlich getestet von mir selbst, meinem partner und beta-Tester. Kürzlich hat ein user kontaktierte mich über die app nicht in der Lage zu öffnen (stürzt nach start-up-Bildschirm), Sie haben das richtige OS und habe versucht neu zu installieren.
Fragte ich nach den crash-log an und Sie schickte es mir...
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread: 0
Thread 0 Crashed:
0 dyld 0x2fe01060 0x2fe00000 + 4192
1 dyld 0x2fe088d4 0x2fe00000 + 35028
2 dyld 0x2fe0196c 0x2fe00000 + 6508
3 dyld 0x2fe01048 0x2fe00000 + 4168
Thread 0 crashed with ARM Thread State:
r0: 0x2fe23ca0 r1: 0x00000000 r2: 0x2fe23ca0 r3: 0x00000000
r4: 0x2ffff4e0 r5: 0x2ffff4bc r6: 0x2fe005c0 r7: 0x2ffffb00
r8: 0x00000004 r9: 0x2fe57cf0 r10: 0x2fe236c8 r11: 0x00000009
ip: 0x0000018d sp: 0x2ffff5b8 lr: 0x2fe088dc pc: 0x2fe01060
cpsr: 0x00000010
Binary Images:
0x2fe00000 - 0x2fe22fff dyld ??? (???) <f6a50d5f57a676b54276d0ecef46d5f0> /usr/lib/dyld
Ich kann nicht scheinen zu finden, ein problem innerhalb meiner app, welche Art von Problemen verursachen EXC_BREAKPOINT (SIGTRAP)? Ich gehe davon aus, dass der Fehler in meiner AppDelegate da es stürzt direkt nach dem start-up-Bildschirm.
- Ich bekam einen crash-Bericht von einem Benutzer, die genauso aussieht, wie dieser (bis auf den hex-Adressen). Haben Sie jemals finden Sie die Ursache?
- Nein habe ich nicht, ich sagte Ihnen, vollständig zu entfernen Sie es und laden Sie es erneut. Ich habe nicht gehört von Ihnen, also entweder haben Sie es aufgegeben oder es hat funktioniert. Das war die einzige Beschwerde, so weit ich erhielt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe diesen Fehler auch und es behoben. Diese person läuft OS3 wahrscheinlich, und Sie sind mit einem code-block von OS4 Sie benötigen, um einen weak link auf die Bibliothek, so dass es korrekt geladen.
in deinem build-Einstellungen für LLVM
-weak_library /usr/lib/libSystem.B.dylib
auch hier diskutiert
iOS 4 stürzt die app beim Start unter iOS 3.1.3: Symbol not found: __NSConcreteStackBlock
Dies ist eine ziemlich seltsame stack-trace. Es zu Abstürzen in dyld (der dynamischen library-loader). Das deutet darauf hin, dass es Probleme beim laden der dynamischen Bibliothek oder Framework, was bedeutet, dass es im laden von system-code (da kann man keine 3rdparty dynamische Bibliothek auf einem standard-iphone). Beachten Sie, wie in den Binären Bildern Abschnitt, der code nicht scheinen ja auch geladen zu werden und doch (oder war das der rest der dump abgeschnitten)? Machen Sie keine manuellen laden von dynamischen Bibliotheken (
dlopen()
oder ähnliches)? Selbst wenn Sie waren, würden Sie erwarten, dassmain()
werden auf den Stapel, wenn Ihr Programm tatsächlich hatten geladen....Wenn Sie sagen, Sie haben versucht, neu zu installieren, ich nehme an, du meinst deine app? Bedeutet das, dass Sie Ihre app gelöscht und dann neu installiert, oder etwas anderes? Die wahrscheinlichste Ursache, die mir einfällt, ist die Korruption des Bundles. Aber Sie würden denken, dass das löschen und Neuinstallation beheben würde, dass bis. Aggressiver wäre löschen, Neustart, dann neu installieren.
Meine nächste Frage wäre, ob dies ist ein jailbroken iPhone. Ich würde bitten den Anwender zum Neustart des iPhone, wenn Sie nicht bereits getan haben. Ich würde sogar versucht um Sie zu bitten, zu tun eine Wiederherstellung des Betriebssystems, aber das ist immer eine schwierige Sache, um zu bitten, einen Kunden zu tun.
Gibt es eine Faustregel mit crash-logs: Wenn der backtrace nutzlos ist, schauen Sie auf der Konsole ausgegeben.
In diesem Fall, was wahrscheinlich geschieht, ist, dass Sie über Dinge, die nicht vorhanden in eine ältere OS-version. Wenn dyld (der dynamische loader) versucht zu beheben Symbole beim laden, es nicht zu finden, einige von Ihnen, und entweder das symbol oder die Bibliothek ist nicht zu schwach verknüpft. Die Konsole sollte sagen, welches symbol/Bibliothek konnte nicht geladen werden.
In den häufigen Fall, können Sie nur ändern, die Rahmen von "Erforderlich" zu "Schwach".
Versuchen Sie diese Schritte aus Apples tech-Hinweis auf das Lesen crash Dateien. Es wird erläutert, wie Sie die hex-code in Symbole (Klassennamen, Methodennamen, Variablennamen, etc,) - app.
Signal.h enthält eine Liste der Fehler, wie SIGTRAP, die definiert ist als: