Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
248 views
in Technique[技术] by (71.8m points)

iphone - How to diagnose EXC_CRASH?

A tester sent this crash file: Not sure what an EXC_CRASH is.

UPDATE: I can randomly replicate it on device (never in simulator) when rotating my phone. Here is my rotation code:

// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||interfaceOrientation == UIInterfaceOrientationLandscapeRight) {

        imageScrollView.frame = CGRectMake(0,0,480,300); //self.view.bounds;
        imageView.frame = CGRectMake(0,0,480,300); //self.view.bounds;
    }
    else {
        imageScrollView.frame = CGRectMake(0,0,320,460); 
        imageView.frame = CGRectMake(0,0,320,460); 
    }


    //return (interfaceOrientation == UIInterfaceOrientationPortrait);
    if (enableLandscapeOrientation) {
        [[self navigationController] setNavigationBarHidden:UIInterfaceOrientationIsLandscape(interfaceOrientation) animated:YES];
        return YES;
    }
    else {
        return NO;
    }
}

Symbolicated Crash Log:

Incident Identifier: EC78AFBF-B73D-4490-B7E3-D6A7CDA5D449
CrashReporter Key:   1657e021ecba3a19c5ed9f0cff62947a426a2bc2
Hardware Model:      iPhone3,1
Process:         StockTwits [1565]
Path:            /var/mobile/Applications/915A215F-EA55-4B98-901B-67E4C856B59E/StockTwits.app/StockTwits
Identifier:      StockTwits
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2010-08-21 16:04:06.293 -0700
OS Version:      iPhone OS 4.0.2 (8A400)
Report Version:  104

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

Thread 0 Crashed:
0   libSystem.B.dylib               0x000791d0 __kill + 8
1   libSystem.B.dylib               0x000791c0 kill + 4
2   libSystem.B.dylib               0x000791b2 raise + 10
3   libSystem.B.dylib               0x0008d6fa abort + 50
4   libstdc++.6.dylib               0x00044a20 __gnu_cxx::__verbose_terminate_handler() + 376
5   libobjc.A.dylib                 0x000059ec _objc_terminate + 104
6   libstdc++.6.dylib               0x00042df2 __cxxabiv1::__terminate(void (*)()) + 46
7   libstdc++.6.dylib               0x00042e46 std::terminate() + 10
8   libstdc++.6.dylib               0x00042f16 __cxa_throw + 78
9   libobjc.A.dylib                 0x000048cc objc_exception_throw + 64
10  CoreFoundation                  0x0009fa70 -[NSObject(NSObject) doesNotRecognizeSelector:] + 96
11  CoreFoundation                  0x0009ef0e ___forwarding___ + 502
12  CoreFoundation                  0x00031678 _CF_forwarding_prep_0 + 40
13  UIKit                           0x00148194 -[UISearchDisplayController windowWillAnimateRotation:] + 92
14  Foundation                      0x00018fb0 _nsnote_callback + 136
15  CoreFoundation                  0x00069e6c __CFXNotificationPost_old + 396
16  CoreFoundation                  0x0001a374 _CFXNotificationPostNotification + 112
17  Foundation                      0x000040bc -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
18  UIKit                           0x000ed5d0 -[UIWindow _setRotatableClient:toOrientation:duration:force:] + 3108
19  UIKit                           0x000eee6c -[UIWindow _setRotatableViewOrientation:duration:force:] + 44
20  UIKit                           0x0007763c -[UIWindow _updateToInterfaceOrientation:duration:force:] + 68
21  UIKit                           0x000775b6 -[UIWindow _updateInterfaceOrientationFromDeviceOrientation:] + 106
22  UIKit                           0x00077506 -[UIWindow _handleDeviceOrientationChange:] + 82
23  Foundation                      0x00018fb0 _nsnote_callback + 136
24  CoreFoundation                  0x00069e6c __CFXNotificationPost_old + 396
25  CoreFoundation                  0x0001a374 _CFXNotificationPostNotification + 112
26  Foundation                      0x000040bc -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
27  UIKit                           0x00040582 -[UIDevice setOrientation:animated:] + 138
28  UIKit                           0x0005d670 -[UIApplication handleEvent:withNewEvent:] + 2732
29  UIKit                           0x0005ca56 -[UIApplication sendEvent:] + 38
30  UIKit                           0x0005c500 _UIApplicationHandleEvent + 5016
31  GraphicsServices                0x00004140 PurpleEventCallback + 660
32  CoreFoundation                  0x00071aa4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
33  CoreFoundation                  0x00073848 __CFRunLoopDoSource1 + 160
34  CoreFoundation                  0x00074626 __CFRunLoopRun + 514
35  CoreFoundation                  0x0001d8e4 CFRunLoopRunSpecific + 224
36  CoreFoundation                  0x0001d7ec CFRunLoopRunInMode + 52
37  GraphicsServices                0x000036e8 GSEventRunModal + 108
38  GraphicsServices                0x00003794 GSEventRun + 56
39  UIKit                           0x000062a0 -[UIApplication _run] + 396
40  UIKit                           0x00004e10 UIApplicationMain + 664
41  StockTwits                      0x00002d58 0x1000 + 7512
42  StockTwits                      0x00002d28 0x1000 + 7464

Thread 1:
0   libSystem.B.dylib               0x0002dc4c kevent + 24
1   libSystem.B.dylib               0x000d6e44 _dispatch_mgr_invoke + 88
2   libSystem.B.dylib               0x000d6894 _dispatch_queue_invoke + 96
3   libSystem.B.dylib               0x000d6a34 _dispatch_worker_thread2 + 120
4   libSystem.B.dylib               0x0007ad82 _pthread_wqthread + 258
5   libSystem.B.dylib               0x00073fcc start_wqthread + 0

Thread 2:
0   libSystem.B.dylib               0x00001658 mach_msg_trap + 20
1   libSystem.B.dylib               0x00003724 mach_msg + 44
2   CoreFoundation                  0x000722c8 __CFRunLoopServiceMachPort + 88
3   CoreFoundation                  0x00074582 __CFRunLoopRun + 350
4   CoreFoundation                  0x0001d8e4 CFRunLoopRunSpecific + 224
5   CoreFoundation                  0x0001d7ec CFRunLoopRunInMode + 52
6   WebCore                         0x00003056 RunWebThread(void*) + 362
7   libSystem.B.dylib               0x0007a986 _pthread_start + 242
8   libSystem.B.dylib               0x000700e4 thread_start + 0

Thread 3:
0   libSystem.B.dylib               0x00001658 mach_msg_trap + 20
1   libSystem.B.dylib               0x00003724 mach_msg + 44
2   CoreFoundation                  0x000722c8 __CFRunLoopServiceMachPort + 88
3   CoreFoundation                  0x00074582 __CFRunLoopRun + 350
4   CoreFoundation                  0x0001d8e4 CFRunLoopRunSpecific + 224
5   CoreFoundation                  0x0001d7ec CFRunLoopRunInMode + 52
6   Foundation                      0x0003b71e +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 206
7   Foundation                      0x0000bc96 -[NSThread main] + 38
8   Foundation                      0x000909da __NSThread__main__ + 966
9   libSystem.B.dylib               0x0007a986 _pthread_start + 242
10  libSystem.B.dylib               0x000700e4 thread_start + 0

Thread 4:
0   libSystem.B.dylib               0x00025a20 select$DARWIN_EXTSN + 20
1   CoreFoundation                  0x00077e70 __CFSocketManager + 540
2   libSystem.B.dylib               0x0007a986 _pthread_start + 242
3   libSystem.B.dylib               0x000700e4 thread_start + 0

Thread 5:
0   libSystem.B.dylib               0x0007b85c __workq_kernreturn + 8
1   libSystem.B.dylib               0x0007ae98 _pthread_wqthread + 536
2   libSystem.B.dylib               0x00073fcc start_wqthread + 0

Thread 0 crashed with ARM Thread State:
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000001      r3: 0x3e90724c
    r4: 0x00000006    r5: 0x09ad4aec      r6: 0x2fffda84      r7: 0x2fffda94
    r8: 0x00000000    r9: 0x00000065     r10: 0x088ca2d0     r11: 0x00000000
    ip: 0x00000025    sp: 0x2fffda94      lr: 0x352741c7      pc: 0x352741d0
  cpsr: 0x080f0010

Binary Images:
    0x1000 -    0x40fff +StockTwits armv7  <7316bae7933ce5f735f322059a3c72db> /var/mobile/Applications/915A215F-EA55-4B98-901B-67E4C856B59E/StockTwits.app/StockTwits
  0x5ee000 -   0x5effff  dns.so armv7  <240b8d3f07b4fcb234de598f8e67de1a> /usr/lib/info/dns.so
0x2fe00000 - 0x2fe26fff  dyld armv7  <193570c1391880df7da870149117e49e> /usr/lib/dyld
0x30095000 - 0x300b4fff  MobileSync armv7  <be1b235840ae625d49f684c39ab083da> /System/Library/PrivateFrameworks/MobileSync.framework/MobileSync
0x30135000 - 0x30686fff  WebCore armv7  <859bdd351085819fb4da07d12b41543f> /System/Library/PrivateFrameworks/WebCore.framework/WebCore
0x30707000 - 0x30715fff  Notes armv7  <56a4dfe587cf5b965edbd6c390ccbf24> /System/Library/PrivateFrameworks/Notes.framework/Notes
0x30ac5000 - 0x30adafff  libresolv.9.dylib armv7  <1ed920d5a995cd94e71c41631d7c551e> /usr/lib/libresolv.9.dylib
0x30adc000 - 0x30bc4fff  libGLProgrammability.dylib armv7  <9bcf5fe3e7abc344425e581ff2896579> /System/Library/Frameworks/OpenGLES.framework/libGLProgrammability.dylib
0x30bc5000 - 0x30bfffff  IMAVCore armv7  <2bd608c3f68c2e9cd73212007eaf248d> /System/Library/PrivateFrameworks/IMAVCore.framework/IMAVCore
0x30ca5000 - 0x30d4bfff  WebKit armv7  <a1d04572b3214188f60f2d1961ac1fe8> /System/Library/PrivateFrameworks/WebKit.framework/WebKit
0x30eb4000 - 0x30f76fff  CFNetwork armv7  <9fdd61632fd1b48d65daba561528946f> /System/Library/Frameworks/CFNetwork.framework/CFNetwork
0x30f77000 - 0x30f7ffff  MobileBluetooth armv7  <0bd0c65f4350b5d81f81449fae029a04> /System/Library/PrivateFrameworks/MobileBluetooth.framework/MobileBluetooth
0x30f80000 - 0x31007fff  Message armv7  <32383927596c6b8c0837a5cd4b2bc0d4> /System/Library/PrivateFrameworks/Message.framework/Message
0x31014000 - 0x310a3fff  AddressBookUI armv7  <7748fd02215f7d77eae9191cba201b97> /System/Library/Frameworks/AddressBookUI.framework/AddressBookUI
0x310a5000 - 0x310a7fff  CrashReporterSupport armv7  <c668de69901cce316252204135b4ce7f> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport
0x310a8000 - 0x3113ffff  MediaPlayer armv7  <2c4b66a2002c1b3222f70c71d8844455> /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer
0x31140000 - 0x31193fff  EventKit armv7  <7f18bef514a44edeccc9619b10f4f1c2> /System/Library/Frameworks/EventKit.framework/EventKit
0x31297000 - 0x3129cfff  MobileKeyBag armv7  <d33678689445fcf1898314262fd1ebd3> /System/Library/PrivateFrameworks/MobileKeyBag.framework/MobileKeyBag
0x3129f000 - 0x312e7fff  libBLAS.dylib armv7  <3b4a2849c10d100a178a3c2d9f6af523> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libBLAS.dylib
0x312e8000 - 0x312e9fff  DataMigration armv7  <2a90bcfdd519f8d7d3487151c77443ed> /System/Library/PrivateFrameworks/DataMigration.framework/DataMigration
0x312ea000 - 0x31358fff  ProofReader armv7  <479bd40ac65cb7e6c3000d79d649571f> /System/Library/PrivateFrameworks/ProofReader.framework/ProofReader
0x31359000 - 0x3142bfff  CoreFoundation armv7  <17c9c36ae8824496b507446869cd4d9d> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
0x31454000 - 0x31457fff  CertUI armv7  <fff763f01a1037dcd9ce6914e25068ca> /System/Library/PrivateFrameworks/CertUI.framework/CertUI
0x31472000 - 0x314a0fff  AppSupport armv7  <2a64271b39599b2180d0dfd3141027ee> /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport
0x31663000 - 0x3280dfff  UIKit armv7  <6c767127e477e6ac7b7f083857ca8064> /System/Library/Frameworks/UIKit.framework/UIKit
0x32824000 - 0x32868fff  libsqlite3.dylib armv7  <36b9bc7d02e29c8d321dd0d7bf7e115e> /usr

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

EXC_CRASH is a mach exception that just means the application terminated abnormally. The parenthetical is the signal that caused the exception, in your case it's SIGABRT which almost always means that you have an un-handled exception somewhere or you have some code that is calling abort() for some reason (again, generally the un-handled exception handler calls this in the end).

You have to symbolicate your crash log with the symbols file that you created for this specific release (the DSYM file that was in the build directory where your app file was). That will at least tell you exactly which line in your code triggered the final abort.

Based on just the libraries here, I'm going to guess that you have an over-released object that you are messaging at some point. Try running the static analyzer to see if it finds any memory problems and symbolicate the crash log so you can at least get a starting point.

This could also be coming from a failed assertion, like index out of bounds or what have you, but since it's so far down in the view hierarchy, my guess is bad memory (the wrong object at the current memory location).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...