到达崩溃的底部

时间:2011-11-21 00:03:15

标签: iphone objective-c ios ipad

这是崩溃报告,我的应用程序的唯一条目是线程0崩溃的最后两行。是否有可能陷入崩溃的底部?

CrashReporter Key:   4cc3bf614179cfc630ec151430177d3d47175000
Hardware Model:      iPad2,1
Process:         MyApp [750]
Path:            /var/mobile/Applications/96D92A43-EA51-4988-88ED-AFDF005995DF/MyApp.app/MyApp
Identifier:      MyApp
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2011-11-20 09:19:34.803 -0600
OS Version:      iPhone OS 5.0.1 (9A405)
Report Version:  104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Last Exception Backtrace:
(0x37ee18bf 0x37a2d1e5 0x37ee17b9 0x37ee17db 0x35178cab 0x15b53 0x12ded 0x319c27ff 0x2c4b 0x3520550f 0x37ead577 0x37e390cf 0x351793fb 0xb66d 0x31a3c565 0x31ab4ce7 0x35211943 0x37eb5a63 0x37eb56c9 0x37eb429f 0x37e374dd 0x37e373a5 0x37c0efcd 0x319b7743 0x2585 0x2550)

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x3054232c 0x30531000 + 70444
1   libsystem_c.dylib               0x379e3f54 0x37996000 + 319316
2   libsystem_c.dylib               0x379dcfe4 0x37996000 + 290788
3   libc++abi.dylib                 0x3043ef64 0x30438000 + 28516
4   libc++abi.dylib                 0x3043c346 0x30438000 + 17222
5   libobjc.A.dylib                 0x37a2d2dc 0x37a24000 + 37596
6   libc++abi.dylib                 0x3043c3be 0x30438000 + 17342
7   libc++abi.dylib                 0x3043c44a 0x30438000 + 17482
8   libc++abi.dylib                 0x3043d81e 0x30438000 + 22558
9   libobjc.A.dylib                 0x37a2d22e 0x37a24000 + 37422
10  CoreFoundation                  0x37e3753e 0x37e28000 + 62782
11  CoreFoundation                  0x37e3739e 0x37e28000 + 62366
12  GraphicsServices                0x37c0efc6 0x37c0b000 + 16326
13  UIKit                           0x319b773c 0x31986000 + 202556
14  MyApp                       0x0000257e main (main.m:14)
15  MyApp                       0x00002548 start + 32


Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0   libsystem_kernel.dylib          0x305323b4 0x30531000 + 5044
1   libdispatch.dylib               0x30a9df74 0x30a9a000 + 16244
2   libdispatch.dylib               0x30a9dc92 0x30a9a000 + 15506

Thread 2:
0   libsystem_kernel.dylib          0x30542cd4 0x30531000 + 72916
1   libsystem_c.dylib               0x379a030a 0x37996000 + 41738
2   libsystem_c.dylib               0x379a009c 0x37996000 + 41116

Thread 3:
0   libsystem_kernel.dylib          0x30542cd4 0x30531000 + 72916
1   libsystem_c.dylib               0x379a030a 0x37996000 + 41738
2   libsystem_c.dylib               0x379a009c 0x37996000 + 41116

Thread 4 name:  WebThread
Thread 4:
0   libsystem_kernel.dylib          0x30532010 0x30531000 + 4112
1   libsystem_kernel.dylib          0x30532206 0x30531000 + 4614
2   CoreFoundation                  0x37eb541c 0x37e28000 + 578588
3   CoreFoundation                  0x37eb4154 0x37e28000 + 573780
4   CoreFoundation                  0x37e374d6 0x37e28000 + 62678
5   CoreFoundation                  0x37e3739e 0x37e28000 + 62366
6   WebCore                         0x3290e128 0x32866000 + 688424
7   libsystem_c.dylib               0x379a5c16 0x37996000 + 64534
8   libsystem_c.dylib               0x379a5ad0 0x37996000 + 64208

Thread 0 crashed with ARM Thread State:
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000001      r3: 0x00000000
    r4: 0x00000006    r5: 0x3f7c2ce8      r6: 0x00000002      r7: 0x2fdffa6c
    r8: 0x00000001    r9: 0x00000000     r10: 0x00000000     r11: 0x35cf9201
    ip: 0x00000148    sp: 0x2fdffa60      lr: 0x379e3f5b      pc: 0x3054232c
  cpsr: 0x000f0010

3 个答案:

答案 0 :(得分:3)

您需要将“Last Exception backtrace”用于表示您的应用中发生崩溃的位置。

要打开终端并转到该应用版本的dSYM所在的目录:

atos -arch armv7 -o your.app.dSYM/Contents/Resource/DWARF/binary 0x15b53 0x12ded 0x2c4b 0xb66d 

使用实际文件名替换your.app.dSYM,并使用应用程序地址范围内的地址替换此目录中dSYM包内的文件名binary(您可以在下面的崩溃报告中找到更低的{ {1}})。我添加了似乎在其中的那些。

您可以使用开源PLCrashReporter框架和其他一些工具/服务来自己捕获这些崩溃报告。有些甚至支持自动符号化。我在这个答案中提到了一些选项:https://stackoverflow.com/q/8242215/474794

对于你的崩溃类型,重要的是要知道最后一个异常回溯,或者甚至是主线程以外的异常回溯。只有基于PLCrashReporter的解决方案才能为您提供相关信息!

答案 1 :(得分:1)

由于错误是SIGABRT,我建议检查所有变量是否有泄漏。当我第一次处理我的应用程序时,我总是得到这个错误。

检查的最佳方式:

Open Finder> Macintosh HD> Developer> Applications> Instruments

在XCode中,选择Profile with Instruments打开,而不是运行应用程序。然后会弹出仪器并询问您要分析的内容。从iOS Simulator子菜单中,选择Memory> Zombies add and record。运行您的应用程序,直到您的应用程序崩溃,仪器应该告诉您当时访问的内容。

希望这有帮助

答案 2 :(得分:0)

在一般实用性说明中,如果您正在寻找更好的方法来测试您的应用,(在发布之前),我强烈建议您使用TestFlight:https://testflightapp.com/

它允许“即时”beta测试,并提供详细的崩溃报告,例如:

设备名称:iPhone 型号:iPhone 4 版本:5.0 语言:en_US(英语) 承运人:Verizon 时区:EST 架构:armv7 连接状态:移动电话

异常原因 - [__ NSCFArray objectAtIndex:]:索引(0)超出边界(0)

Stacktrace(7)0追踪追踪器0x0007ad89 + [TFCrashHandler回溯] + 429

1 Trail Tracker 0x0007afc7 TFHandleExceptions + 35

2 CoreFoundation 0x34681987 __handleUncaughtException + 74

3 libobjc.A.dylib 0x3678c2d1 _objc_terminate + 128

4 libc ++ abi.dylib 0x372993c5 _ZL19safe_handler_callerPFvvE + 76

5 libc ++ abi.dylib 0x37299451 _ZdlPv + 0

6 libc ++ abi.dylib 0x3729a825 __cxa_current_exception_type + 0

7 libobjc.A.dylib 0x3678c235 objc_exception_rethrow + 12

8 CoreFoundation 0x345d7545 CFRunLoopRunSpecific + 404

9 CoreFoundation 0x345d73a5 CFRunLoopRunInMode + 104

10 GraphicsServices 0x34d4bfed GSEventRunModal + 156

11 UIKit 0x3613e743 UIApplicationMain + 1090

12 Trail Tracker 0x0001738b main(main.m:14)

13 Trail Tracker 0x00017344 start + 40

您可以使用TestFlight做很多事情,所以请查看:)

PS:这不是我的产品,很抱歉,如果我看来是广告/垃圾邮件。这不是我的产品,我非常喜欢它。由于问题的性质,我认为这与该主题有关。干杯!