首页 文章

奇怪的崩溃消息“试图取消引用垃圾指针”

提问于
浏览
2

我的应用程序是ARC abide应用程序,但我仍然看到崩溃报告中显示多条崩溃消息“尝试取消引用垃圾指针” . 他们很难诊断 .

我的问题是,为什么应用程序因为内存问题而崩溃,即使我们使用ARC并且我们无法使用相同的步骤重现它 . 如何应对此类崩溃?

一个这样的崩溃报告如下:

CrashReporterKey:896d0c8676c0e02eb292865a654825359de4d427 HardwareModel:iPod4,1版本:5510(3.0.0)OSVersion:iPhone OS 6 . 1 . 3(10 . 2932)日期/时间:2013-08-15 09:50:51.000 -0700 FirmwareVersion:2.27.0报告版本:104异常类型:EXC_BAD_ACCESS(SIGSEGV)异常代码:KERN_INVALID_ADDRESS位于0x31fd4078崩溃线程:0线程0名称:调度队列:com.apple.main-thread线程0崩溃:0 libobjc.A.dylib 0x3b1ac5b0 objc_msgSend 16 1 UIKit 0x3533c350 0x35338000 17232个2的UIKit 0x3533b6c8 0x35338000 14024 3的UIKit 0x3533b118 0x35338000 12568 4 GraphicsServices 0x3702d5a0 0x37027000 26016 5 GraphicsServices 0x3702d1d0 0x37027000 25040 6的CoreFoundation 0x33508170 0x33471000 618864 7的CoreFoundation 0x33508110 0x33471000 618768 8的CoreFoundation 0x33506f98 0x33471000 614296 9的CoreFoundation 0x33479eb8 CFRunLoopRunSpecific 352 10的CoreFoundation 0x33479d48 CFRunLoopRunInMode 104个11 GraphicsServices 0x3702c2e8 GSEventRunModal 72 12 UIKit 0x3538f300 UIAppli cationMain 1120 13 MyApp 0x000a8e58 main 20线程1名称:调度队列:com.apple.libdispatch-manager线程1:0 libsystem_kernel.dylib 0x3b69f648 kevent64 24 1 libdispatch.dylib 0x3b5cadf8 0x3b5c7000 15864线程2名称:WebThread线程2:0 WebCore 0x39503560 0x3945d000 681312 1的WebCore 0x394e7f90 0x3945d000 569232 2的WebCore 0x394e2788 0x3945d000 546696 3的WebCore 0x396ca8a8 ZN7WebCore11FrameLoader16detachFromParentEv 64 4的WebKit 0x39e12618 0x39d8d000 546328 5的WebCore 0x394699c8 0x3945d000 51656 6的WebKit 0x39e12490 0x39d8d000 545936 7的WebKit 0x39e18570 0x39d8d000 570736 8的WebKit 0x39e184a8 0x39d8d000 570536 9的WebCore 0x394fb850 0x3945d000 649296 10的CoreFoundation 0x33508680 0x33471000 620160 11 CoreFoundation 0x33507ee8 0x33471000 618216 12 CoreFoundation 0x33506cb0 0x33471000 613552 13 CoreFoundation 0x33479eb8 CFRunLoopRunSpecific 352 14 CoreFoundation 0x33479d48 CFRunLoopRunInMode 104 15 WebCore 0x39467500 0x3945d000 42240 16 libsystem c.dylib 0x3b608310 0x3b5f7000 70416线程3名称:CommRunLoop线程线程3:0 libsystem_kernel.dylib 0x3b6af6a4 __semwait_signal 24 1基础0x33decc60 0x33d99000 343136 2 MyApp 0x002be680 - [CommRunLoop runLoopThread:] 504 3基础0x33e49e80 0x33d99000 724608 4 libsystem_c.dylib 0x3b608310 0x3b5f7000 70416线程4名称:com.apple.CFSocket.private线程4:0 libsystem_kernel.dylib 0x3b6af594 select $ DARWIN_EXTSN 20 1 libsystem_c.dylib 0x3b608310 0x3b5f7000 70416线程5:0 libsystem_kernel.dylib 0x3b6af6a4 __semwait_signal 24 1基础0x33decc60 0x33d99000 343136 2 MyApp 0x00333580 - [KSCrashDeadlockMonitor runMonitor] 244 3基础0x33e49e80 0x33d99000 724608 4 libsystem_c.dylib 0x3b608310 0x3b5f7000 70416线程6名称:KSCrash异常处理程序(辅助)线程6:0 libsystem_kernel.dylib 0x3b69eeb4 mach_msg_trap 20 1 MyApp 0x0032f710 ksmachexc_i_handleExceptions 124 2 libsystem_c.dylib 0x3b608310 0x3b5f7000 70416线程7名称: KSCrash异常处理程序(主)线程7:螺纹8名:com.apple.NSURLConnectionLoader螺纹8:0 libsystem_kernel.dylib 0x3b69eeb4 mach_msg_trap 20 1的CoreFoundation 0x33508040 0x33471000 618560 2的CoreFoundation 0x33506da0 0x33471000 613792 3的CoreFoundation 0x33479eb8 CFRunLoopRunSpecific 352 4的CoreFoundation 0x33479d48 CFRunLoopRunInMode 104 5基金会0x33dc63d0 0x33d99000 185296 6基金会0x33e49e80 0x33d99000 724608 7 libsystem_c.dylib 0x3b608310 0x3b5f7000 70416螺纹9名:JavaScriptCore的:: BlockFree螺纹9:0 libsystem_kernel.dylib 0x3b6af08c __psynch_cvwait 24 1个libsystem_c.dylib 0x3b600aa0那么pthread_cond_timedwait 40 2的JavaScriptCore 0x37422c70 _ZN3WTF15ThreadCondition9timedWaitERNS_5MutexEd 104 3 JavaScriptCore的0x37534550 0x373c7000 1496400 4 JavaScriptCore 0x37546fa8 0x373c7000 1572776 5 libsystem_c.dylib 0x3b608310 0x3b5f7000 70416线程10名称:调度队列:com.apple.root.background-priority线程10:0 MyApp 0x00320a18 [KSC rashReportFilterAppleFmtfilterWithReportStyle:] 0 1 libdispatch.dylib 0x3b5c9118 0x3b5c7000 8472 2 libdispatch.dylib 0x3b5d7258 0x3b5c7000 66136 3 libdispatch.dylib 0x3b5d73b8 0x3b5c7000 66488 4 libsystem_c.dylib 0x3b5fda10 0x3b5f7000 27152螺纹11:0 libsystem_kernel.dylib 0x3b6afd98 _workq_kernreturn 8 1 libsystem_c.dylib 0x3b5fda10 0x3b5f7000 27152螺纹12:0 libsystem_kernel.dylib 0x3b6afd98 workq_kernreturn 8 1 libsystem_c.dylib 0x3b5fda10 0x3b5f7000 27152螺纹13:0 libsystem_kernel.dylib 0x3b6afd98 workq_kernreturn 8 1 libsystem_c.dylib 0x3b5fda10 0x3b5f7000 27152线程0坠毁与ARM线程状态:R0:0x1fd2a130 R1:0x357e82c0 R2:0x1fd3a6d0 R3:0x20a8a4a0 R4:0x31fd4070 R5:0x20a8a4a0 R6:0x2fd59a10 R7:0x2fd599f8 R8:0x20a8af20 R9:0x0d5fa0b0 R10:0xbecb6c00 R11:0x1fd3a6d0 IP:0x3bb2bd64 SP:0x2fd599c8 LR:0x355abb97 PC:0x3b1ac5b0 CPSR:0x20000030额外的信息:堆栈转储(0x2fd599a0- 0x2fd59a18):A8B4BC3B209FF240B499D52FADD81A3BA8B4BC3BC099D52F45D91A3BD0A 6D31FC899D52FF1D01B3BA0A4A820D0A6D31F000000000020B23F00000000806DD9BF00000000E073ECBF0000000000000000009F63BF209FF240789AD52F51C3333500000000806DD9BF00000000E073ECBFDA1B7C21209FF240值得注意地址:{ “R1”:{ “地址”:897483456, “类型”: “串”, “值”: “加速度计:didAccelerate:”}, “R11”:{ “地址”:533964496, “类” :“UIAccelerometer”,“ivars”:{“ delegate”:{“address”:533897520,“type”:“unknown”},“ - updateInterval”:0.1},“type”:“objc_object”},“r2”: {“address”:533964496,“class”:“UIAccelerometer”,“ivars”:{“ delegate”:{“address”:533897520,“type”:“unknown”},“ - updateInterval”:0.1},“type” :“objc_object”},“r3”:{“address”:547923104,“class”:“UIAcceleration”,“ivars”:{“timestamp”:76274,“x”:0.0708008,“y”: - 0.397308,“ z“: - 0.889145},”type“:”objc_object“},”r5“:{”address“:547923104,”class“:”UIAcceleration“,”ivars“:{”timestamp“:76274,”x“: 0.0708008,“y”: - 0.397308,“z”: - 0.889145},“type”:“objc_object”},“r8”:{“地址”:5479 25792,“class”:“ _ NSCFType”,“ivars”:{},“type”:“objc_object”},“stack @ 0x2fd599a0”:{“address”:1002222760,“class”:“UIAcceleration”,“type” :“objc_class”},“stack @ 0x2fd599b0”:{“address”:1002222760,“class”:“UIAcceleration”,“type”:“objc_class”},“stack @ 0x2fd599bc”:{“address”:533964496,“ class“:”UIAccelerometer“,”ivars“:{” delegate“:{”address“:533897520,”type“:”unknown“},” - updateInterval“:0.1},”type“:”objc_object“},”stack @ 0x2fd599c8“:{”address“:547923104,”class“:”UIAcceleration“,”ivars“:{”timestamp“:76274,”x“:0.0708008,”y“: - 0.397308,”z“: - 0.889145} ,“type”:“objc_object”},“stack @ 0x2fd599cc”:{“address”:533964496,“class”:“UIAccelerometer”,“ivars”:{“ delegate”:{“address”:533897520,“type” :“unknown”},“ - updateInterval”:0.1},“type”:“objc_object”}} CrashDoctor诊断:尝试取消引用垃圾指针0x31fd4078 .

1 回答

  • 5

    它是's still possible to write buggy code, even when you'重新使用ARC - 这不是魔术,而且还有规则 . 在这种情况下,尝试在Xcode中运行您的应用程序的调试版本,并打开"NSZombies" . 这样做,就是每次你的应用程序试图释放一个对象时,Objective-C会用一个 NSZombie 对象替换它,当你试图使用它时,它会提供一个更有用的错误信息(试图取消引用垃圾指针,作为你的傻傻的CrashDoctor事情告诉你) .

相关问题