如何理解iPhone的崩溃日志

我只知道它崩溃没有用完内存。

我怎么知道这是错误的原因?

Incident Identifier: 242C320A-763C-407E-BD40-443E3E9B611C CrashReporter Key: 307097bc0924dac79e5352eb10692943c0ef05ad Process: AsianDelight [4894] Path: /var/mobile/Applications/7A8FF881-A033-45B9-8F72-8478217821E9/AsianDelight.app/AsianDelight Identifier: AsianDelight Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2010-01-20 16:32:49.285 +0700 OS Version: iPhone OS 3.1.2 (7D11) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000 Crashed Thread: 0 Thread 0 Crashed: 0 libobjc.A.dylib 0x00007532 realizeClass + 18 1 libobjc.A.dylib 0x00007578 realizeClass + 88 2 libobjc.A.dylib 0x00007578 realizeClass + 88 3 libobjc.A.dylib 0x00007e76 prepareForMethodLookup + 26 4 libobjc.A.dylib 0x0000523e lookUpMethod + 34 5 libobjc.A.dylib 0x00002a0a _class_lookupMethodAndLoadCache + 6 6 libobjc.A.dylib 0x00002740 objc_msgSend_uncached + 20 7 AsianDelight 0x00004b3a -[FlowCoverView numTiles] (FlowCoverView.m:250) 8 AsianDelight 0x000048ea -[FlowCoverView updateAnimationAtTime:] (FlowCoverView.m:487) 9 AsianDelight 0x000057f6 -[FlowCoverView driveAnimation] (FlowCoverView.m:520) 10 Foundation 0x0000ccfe __NSFireTimer + 130 11 CoreFoundation 0x00056bac CFRunLoopRunSpecific + 2112 12 CoreFoundation 0x00056356 CFRunLoopRunInMode + 42 13 GraphicsServices 0x00003cb8 GSEventRunModal + 108 14 GraphicsServices 0x00003d64 GSEventRun + 56 15 UIKit 0x00002768 -[UIApplication _run] + 384 16 UIKit 0x0000146c UIApplicationMain + 688 17 AsianDelight 0x00002664 main (main.m:14) 18 AsianDelight 0x00002620 start + 44 Thread 1: 0 libSystem.B.dylib 0x00000818 mach_msg_trap + 20 1 libSystem.B.dylib 0x00002ff8 mach_msg + 44 2 CoreFoundation 0x000567f6 CFRunLoopRunSpecific + 1162 3 CoreFoundation 0x00056356 CFRunLoopRunInMode + 42 4 WebCore 0x0005d9de RunWebThread(void*) + 286 5 libSystem.B.dylib 0x0002492a _pthread_body + 10 Thread 0 crashed with ARM Thread State: r0: 0x0012cd00 r1: 0xffffffff r2: 0x80000000 r3: 0x00000002 r4: 0x00000000 r5: 0x0012cd00 r6: 0x38680878 r7: 0x2ffff3e4 r8: 0x00145798 r9: 0x001fc098 r10: 0x00000000 r11: 0x2ffff628 ip: 0x00000004 sp: 0x2ffff3cc lr: 0x3240357f pc: 0x32403532 cpsr: 0x20000030 Binary Images: 0x1000 - 0x7fff +AsianDelight armv6 <df65e87046878ce496d0b1ac952247a1> /var/mobile/Applications/7A8FF881-A033-45B9-8F72-8478217821E9/AsianDelight.app/AsianDelight 0x6a000 - 0x6bfff dns.so armv7 <35ac487c38e38ed5810d5ed0d5c67546> /usr/lib/info/dns.so 0x3541000 - 0x366afff GLEngine armv7 <3363af21f4d6a81aaae829238bb06eb4> /System/Library/Frameworks/OpenGLES.framework/GLEngine.bundle/GLEngine 0x3696000 - 0x372afff IMGSGX535GLDriver armv7 <999124d3d82ac52e0eb81732f945610c> /System/Library/Extensions/IMGSGX535GLDriver.bundle/IMGSGX535GLDriver 0x2fe00000 - 0x2fe24fff dyld armv7 <5db9f5d0275997de58efff111816706e> /usr/lib/dyld 0x30149000 - 0x3016efff AppSupport armv7 <ca2e9a4f0475af20028968840ab94ecf> /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport 0x30175000 - 0x3017ffff MobileCoreServices armv7 <36d71cd8dd49f5d5addb356f449b562a> /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices 0x30184000 - 0x30184fff Accelerate armv7 <939f94df6c7e6e7a090ddee1ec09c844> /System/Library/PrivateFrameworks/Accelerate.framework/Accelerate 0x301b8000 - 0x301c3fff libz.1.dylib armv7 <8faba7ded9b3527ccf54c2f224f9a12f> /usr/lib/libz.1.dylib 0x301c4000 - 0x301eefff CoreText armv7 <821e9c7c935b6a8d735e2d2d9ebcee04> /System/Library/PrivateFrameworks/CoreText.framework/CoreText 0x302c6000 - 0x302cefff CoreVideo armv7 <9259f5ae2a74b53e4f13b27fa3d511e8> /System/Library/PrivateFrameworks/CoreVideo.framework/CoreVideo 0x302d4000 - 0x302d7fff libGFXShared.dylib armv7 <1ab8608f288196f32905d3bdab9616b4> /System/Library/Frameworks/OpenGLES.framework/libGFXShared.dylib 0x304cf000 - 0x3050ffff libsqlite3.dylib armv7 <c2b5985d8307d73b39140e76adfd2eb7> /usr/lib/libsqlite3.dylib 0x30578000 - 0x30a4efff WebCore armv7 <4e2bac4e01a15979c9ac096f78280db0> /System/Library/PrivateFrameworks/WebCore.framework/WebCore 0x30b13000 - 0x30b13fff vecLib armv7 <4eb91bf56603dc0db6784d8d3240bfa8> /System/Library/PrivateFrameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib 0x30c2b000 - 0x30d04fff libGLProgrammability.dylib armv7 <efc744c0ff3697951a5c269c37a9b2cf> /System/Library/Frameworks/OpenGLES.framework/libGLProgrammability.dylib 0x30d05000 - 0x30d29fff SystemConfiguration armv7 <c57df668b510f025ee5a173ad30fb48e> /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration 0x30d6c000 - 0x30decfff QuartzCore armv7 <af0722911ffc74fc08075e9831a6222e> /System/Library/Frameworks/QuartzCore.framework/QuartzCore 0x30e5d000 - 0x30e72fff libresolv.9.dylib armv7 <2b6a9404652dd2b5abd1c6a5583e8533> /usr/lib/libresolv.9.dylib 0x30ec7000 - 0x30ed0fff SpringBoardServices armv7 <17ca8b5262cd6484d41efdc72c6fd057> /System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices 0x30fe6000 - 0x30ffbfff OpenGLES armv7 <be80a5e4c55c2920be2c31f740bb9dba> /System/Library/Frameworks/OpenGLES.framework/OpenGLES 0x31003000 - 0x31009fff libkxld.dylib armv7 <04ab19af95239c12a98539478eebc560> /usr/lib/system/libkxld.dylib 0x312f6000 - 0x312fcfff libgcc_s.1.dylib armv7 <263b2691cd12171b31fa600716104e4a> /usr/lib/libgcc_s.1.dylib 0x31338000 - 0x31367fff libCGFreetype.A.dylib armv7 <2ec5ad6812f5ea3859cb4189d62b7265> /System/Library/Frameworks/CoreGraphics.framework/Resources/libCGFreetype.A.dylib 0x31393000 - 0x313cafff IOKit armv7 <0afabe8bf08fc163ba8e4ed614092cd3> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x313e9000 - 0x313eafff IOMobileFramebuffer armv7 <9d9f0254b5b64ced3d58191748f3027b> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer 0x313ed000 - 0x314e2fff Foundation armv7 <ede5b943f529ce1b862c15dc876992c1> /System/Library/Frameworks/Foundation.framework/Foundation 0x314ed000 - 0x31599fff libxml2.2.dylib armv7 <a491bfc5f062f33185a3f98969bae3c2> /usr/lib/libxml2.2.dylib 0x31926000 - 0x319a8fff WebKit armv7 <b9b7246a09f5db68e44497d318cb3ab6> /System/Library/PrivateFrameworks/WebKit.framework/WebKit 0x319a9000 - 0x31aa0fff libSystem.B.dylib armv7 <3f94d4b13815a93cbdfc6c7dc2afe5b4> /usr/lib/libSystem.B.dylib 0x31aa2000 - 0x31b8bfff AudioToolbox armv7 <393fa1e155bb0523c2a90555bb394498> /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox 0x31b8d000 - 0x31bfcfff CFNetwork armv7 <b55671f2472fdae3f811ae6f636b4e2e> /System/Library/Frameworks/CFNetwork.framework/CFNetwork 0x31bfe000 - 0x31c42fff libGLImage.dylib armv7 <ea2c117d2db3bb4c7d2137ffb9a09bdd> /System/Library/Frameworks/OpenGLES.framework/libGLImage.dylib 0x31d59000 - 0x31d5cfff IOSurface armv7 <81661b8e151a9af6ce5704a728e12dc7> /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface 0x31ed9000 - 0x31f8dfff JavaScriptCore armv7 <d3434c868a9a0f4016ed32ba90a35c4d> /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore 0x31f91000 - 0x320e6fff CoreGraphics armv7 <5852bd39fd1ef304da7b017949755cab> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics 0x321d4000 - 0x322d5fff libicucore.A.dylib armv7 <1081389fef915d9b8858d0dfff04568e> /usr/lib/libicucore.A.dylib 0x323fc000 - 0x32499fff libobjc.A.dylib armv7 <1a57ecb9f5c0f274a274b3eb53df48ed> /usr/lib/libobjc.A.dylib 0x324b5000 - 0x324cbfff AddressBook armv7 <c21d7ab21d7e67f84c487bc278568bbe> /System/Library/Frameworks/AddressBook.framework/AddressBook 0x32511000 - 0x325bbfff CoreFoundation armv7 <51c03f1f8755868781e3e719d8df7b6f> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 0x3286c000 - 0x328f2fff ImageIO armv7 <ea76d0fd3ca8c1a6104bc0f013255e2d> /System/Library/PrivateFrameworks/ImageIO.framework/ImageIO 0x3290f000 - 0x32918fff GraphicsServices armv7 <5387c7197570ac7df97759c0402d453d> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices 0x32a01000 - 0x32a02fff CoreSurface armv7 <f3aae0195e4510657029b19161138593> /System/Library/PrivateFrameworks/CoreSurface.framework/CoreSurface 0x32a56000 - 0x32a7efff libvDSP.dylib armv7 <d846b621ce13b16241ac2d32ddd28615> /System/Library/PrivateFrameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib 0x32a81000 - 0x32a86fff liblockdown.dylib armv7 <5b665cd59d9884ceecec6441fc42bc14> /usr/lib/liblockdown.dylib 0x32aed000 - 0x32b07fff libRIP.A.dylib armv7 <0dc4e83b63c1350517949e24204817fb> /System/Library/Frameworks/CoreGraphics.framework/Resources/libRIP.A.dylib 0x32b09000 - 0x32b2dfff Security armv7 <3a3406fe12445942f4d767c7fa4c24ce> /System/Library/Frameworks/Security.framework/Security 0x32b60000 - 0x33524fff UIKit armv7 <47c9d61f9cbe72938d1bfb1588306b97> /System/Library/Frameworks/UIKit.framework/UIKit 0x33594000 - 0x33599fff MBX2D armv7 <ae091892e4419221d25f8db9307cedf0> /System/Library/PrivateFrameworks/MBX2D.framework/MBX2D 0x3359a000 - 0x335d7fff CoreAudio armv7 <1eb427066a911d979a024e445464a067> /System/Library/Frameworks/CoreAudio.framework/CoreAudio 0x335d8000 - 0x33621fff libstdc++.6.dylib armv7 <99401ed10ec4d5608ce23ec33dd757c6> /usr/lib/libstdc++.6.dylib 0x33627000 - 0x33632fff libbsm.0.dylib armv7 <03f3879bad1802636dadeb457ee74cb2> /usr/lib/libbsm.0.dylib 

问题出现在FlowCoverView的numTiles方法中。 你可以看看那里。 显然这是一个未知的select发送到一个对象,因为它失败了objc_msgSend _….

看看WWDC 10video中的Session 317。 http://developer.apple.com/videos/wwdc/2010/

  1. 如果您正在运行Snow Leopard,请打开项目中的静态分析器。
  2. 打开NSZombieEnabled http://www.frogameleon.com/blog/last-night-an-iphone-zombie-nszombieenabled-saved-my-life
  3. 查看其他debugging文档并使用Apple提供的工具。 http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html

首先,您应该了解有四种types的崩溃,日志报告取决于崩溃的types:

  1. 看门狗超时
  2. 用户强制/退出
  3. 低内存终止
  4. 错误

日志报告分为以下几部分:

处理信息在哪里

 CrashReporter Key: Unique anonymous device id Process: Name[id] Version: CFBundleVersion(CFBundleShortVersionString) 

 Incident Identifier: 242C320A-763C-407E-BD40-443E3E9B611C CrashReporter Key: 307097bc0924dac79e5352eb10692943c0ef05ad Process: AsianDelight [4894] Path: /var/mobile/Applications/7A8FF881-A033-45B9-8F728478217821E9/AsianDelight.app/AsianDelight Identifier: AsianDelight Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] 

基本信息

 Date/Time: 2010-01-20 16:32:49.285 +0700 OS Version: iPhone OS 3.1.2 (7D11) Report Version: 104 

exception在这种情况下,没有关于崩溃的深入信息,但在其他情况下,您可以在这里findexception的原因。

 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000 Crashed Thread: 0 

发生崩溃的线程的Backtrace (活动帧的列表),在这种情况下, 线程0

在线
7 AsianDelight 0x00004b3a -[FlowCoverView numTiles] (FlowCoverView.m:250)
7是帧号
AsianDelight是二进制的名称
0x00004b3a是该函数的地址
[FlowCoverView numTiles] (FlowCoverView.m:250)文件和编号行。 有时它可能像0x10009c000 + 137220这样的地址基地和偏移量。 通过符号化,这可以映射到源代码。 要做符号,只需将崩溃日志拖放到设备日志部分的Xcode Organizer窗口中即可。 请注意,Xcode应该有权访问二进制文件和.dsYM文件。 通常Xcode没有象征崩溃报告,如果是这种情况,请检查这个链接 ,解释如何手动执行。

 Thread 0 Crashed: 0 libobjc.A.dylib 0x00007532 realizeClass + 18 1 libobjc.A.dylib 0x00007578 realizeClass + 88 2 libobjc.A.dylib 0x00007578 realizeClass + 88 3 libobjc.A.dylib 0x00007e76 prepareForMethodLookup + 26 4 libobjc.A.dylib 0x0000523e lookUpMethod + 34 5 libobjc.A.dylib 0x00002a0a _class_lookupMethodAndLoadCache + 6 6 libobjc.A.dylib 0x00002740 objc_msgSend_uncached + 20 7 AsianDelight 0x00004b3a -[FlowCoverView numTiles] (FlowCoverView.m:250) 8 AsianDelight 0x000048ea -[FlowCoverViewupdateAnimationAtTime:] (FlowCoverView.m:487) 

线程状态显示发生崩溃时的值和寄存器

 Thread 0 crashed with ARM Thread State: r0: 0x0012cd00 r1: 0xffffffff r2: 0x80000000 r3: 0x00000002 r4: 0x00000000 r5: 0x0012cd00 r6: 0x38680878 r7: 0x2ffff3e4 r8: 0x00145798 r9: 0x001fc098 r10: 0x00000000 r11: 0x2ffff628 ip: 0x00000004 sp: 0x2ffff3cc lr: 0x3240357f pc: 0x32403532 

崩溃发生时加载的二进制文件

 Binary Images: 0x1000 - 0x7fff +AsianDelight armv6 <df65e87046878ce496d0b1ac952247a1> /var/mobile/Applications/7A8FF881-A033-45B9-8F72-8478217821E9/AsianDelight.app/AsianDelight 0x6a000 - 0x6bfff dns.so armv7 <35ac487c38e38ed5810d5ed0d5c67546>/usr/lib/info/dns.so 0x3541000 - 

这个答案是基于Madhuwanti Vaidya和Bill Dirks的“ 了解iPhone OS崩溃报告”的基础上的,我感谢皮埃尔的回答 。

以下是会议的pdf: http : //adcdownload.apple.com//wwdc_2010/wwdc_2010_video_assets__pdfs/317__understanding_crash_reports_on_iphone_os.pdf

我遇到了同样的问题,并发现一个repro情况:当我轻扫FlowCoverView中的图像,并立即点击完成button,它崩溃,完全相同的崩溃日志。

看起来像done操作导致FlowCoverViewController被释放,这导致FlowCoverView的委托僵尸。

如果在此期间FlowCoverView的touchesEnded正在进行,则会导致崩溃。

有可能有更好的方法来解决这个问题,但这是我试图解决这个问题:

在FlowCoverViewController的dealloc方法中,我尝试访问FlowCoverView以将其委托设置为nil:

 -(void)dealloc { NSArray *viewsArray = [self.view subviews]; for (UIView*v in viewsArray) { if ([v isKindOfClass:[FlowCoverView class]]) { FlowCoverView *fcv = (FlowCoverView*)v; fcv.delegate = nil; } } ... } 

让我知道这是否解决了你的崩溃。