如何理解iPhone的崩溃日志

时间:2010-01-20 09:39:27

标签: ios iphone crash-reports

我只知道崩溃不会耗尽内存。

我怎么知道它导致错误?

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

5 个答案:

答案 0 :(得分:4)

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

中失败

答案 1 :(得分:4)

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

  1. 看门狗超时
  2. 用户强制/退出
  3. 内存不足
  4. 错误
  5. 日志报告分为以下几个部分:

    流程信息其中

    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 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通常无法表示崩溃报告,如果是这种情况,请检查this link,解释如何手动执行此操作。

    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撰写的WWDC 2010会议317 了解iPhone OS上的崩溃报告,我感谢Pierre's answer

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

答案 4 :(得分:1)

我遇到了同样的问题并发现了一个重复案例:当我浏览FlowCoverView中的图像并立即点击完成按钮时,它会崩溃并使用完全相同的崩溃日志。

看起来已完成的操作会导致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;
}
}
...
}

如果这解决了您的崩溃,请告诉我。