iOS crash log: how to make sense of it when the crashing thread has no app frame

1.4k views Asked by At

Please see the crash log below.
The crashing thread 66 and the Last Exception backtrace has no TestApp frame.
Can I conclude that the crash was caused by code that was not written by me?

Note: the TestApp did not symbolicate even though I have the dsym and all, not sure why at this point, by since the thread 66 and the exception backtrace had no references to the TestApp code, I did not spend time on manual symbolication so far.

EDIT: I am using ARC.
EDIT2 : I am using JS in the code also, so this crash might come from there also. Not sure how would show up if that's the case.

Incident Identifier: 5F8D81B8DCE
CrashReporter Key:   a666d85467307431
Hardware Model:      iPad4,4
Process:             TestApp [286]
Path:                /var/mobile/Applications/177CBA10-C0F0-4DEE-85B8-6FAB64BC70E6/TestApp.app/TestApp
Identifier:          com.sample.TestApp
Version:             1.8 (1.8)
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2014-01-01 18:21:31.055 +0100
OS Version:          iOS 7.0.4 (11B554a)
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  66

Last Exception Backtrace:
0   CoreFoundation                  0x302f8e83 __exceptionPreprocess + 131
1   libobjc.A.dylib                 0x3a9946c7 objc_exception_throw + 38
2   CoreFoundation                  0x302f8dc5 +[NSException raise:format:] + 112
3   Foundation                      0x30c33d05 -[NSData(NSData) getBytes:range:] + 240
4   CoreFoundation                  0x302512ad CFDataGetBytes + 204
5   ImageIO                         0x31032397 CGImageReadGetBytesAtOffset + 282
6   ImageIO                         0x31032271 CGImageReadSessionGetBytes + 28
7   ImageIO                         0x3104e417 fill_input_buffer + 150
8   ImageIO                         0x3104d7ef read_markers + 150
9   ImageIO                         0x3104d535 consume_markers + 36
10  ImageIO                         0x3104d36d _cg_jpeg_consume_input + 104
11  ImageIO                         0x3104d2db _cg_jpeg_read_header + 42
12  ImageIO                         0x31051249 startDecompressing + 60
13  ImageIO                         0x31050d27 copyImageBlockSetJPEG + 3214
14  ImageIO                         0x31039c8b ImageProviderCopyImageBlockSetCallback + 538
15  CoreGraphics                    0x3038046d CGImageProviderCopyImageBlockSetWithOptions + 136
16  QuartzCore                      0x3272b4e1 CA::Render::create_image(CGImage*, CGColorSpace*, unsigned int) + 680
17  QuartzCore                      0x3272a991 CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double) + 292
18  QuartzCore                      0x3271680b CA::CG::fill_image(CA::CG::Renderer&, CGImage*, CA::Rect const&, CA::Mat2<float> const&, bool, bool, CGInterpolationQuality, CA::Bounds const*) + 1234
19  QuartzCore                      0x3271632d CA::CG::DrawImage::draw_image(CA::CG::Renderer&, bool) const + 80
20  QuartzCore                      0x32713083 CA::CG::DrawOp::render(CA::CG::Renderer&) const + 2146
21  QuartzCore                      0x327117a1 CA::CG::Queue::render_callback(void*) + 268
22  libdispatch.dylib               0x3ae7de7b _dispatch_queue_drain + 374
23  libdispatch.dylib               0x3ae7af93 _dispatch_queue_invoke + 42
24  libdispatch.dylib               0x3ae7e745 _dispatch_root_queue_drain + 76
25  libdispatch.dylib               0x3ae7e9c5 _dispatch_worker_thread2 + 56
26  libsystem_pthread.dylib         0x3afa8dff _pthread_wqthread + 298
27  libsystem_pthread.dylib         0x3afa8cc4 start_wqthread + 8


Thread 66 Crashed:
0   libsystem_kernel.dylib          0x3af441fc __pthread_kill + 8
1   libsystem_pthread.dylib         0x3afaba4f pthread_kill + 55
2   libsystem_c.dylib               0x3aef5029 abort + 73
3   libc++abi.dylib                 0x3a34398b abort_message + 71
4   libc++abi.dylib                 0x3a35c6e3 default_terminate_handler() + 251
5   libobjc.A.dylib                 0x3a994937 _objc_terminate() + 191
6   libc++abi.dylib                 0x3a35a1b1 std::__terminate(void (*)()) + 77
7   libc++abi.dylib                 0x3a359a05 __cxa_throw + 113
8   libobjc.A.dylib                 0x3a994797 objc_exception_throw + 247
9   CoreFoundation                  0x302f8dc1 +[NSException raise:format:] + 109
10  Foundation                      0x30c33d01 -[NSData(NSData) getBytes:range:] + 237
11  CoreFoundation                  0x302512a9 CFDataGetBytes + 201
12  ImageIO                         0x31032393 CGImageReadGetBytesAtOffset + 279
13  ImageIO                         0x3103226d CGImageReadSessionGetBytes + 25
14  ImageIO                         0x3104e413 fill_input_buffer + 147
15  ImageIO                         0x3104d7ed read_markers + 149
16  ImageIO                         0x3104d533 consume_markers + 35
17  ImageIO                         0x3104d36b _cg_jpeg_consume_input + 103
18  ImageIO                         0x3104d2d7 _cg_jpeg_read_header + 39
19  ImageIO                         0x31051245 startDecompressing + 57
20  ImageIO                         0x31050d23 copyImageBlockSetJPEG + 3211
21  ImageIO                         0x31039c89 ImageProviderCopyImageBlockSetCallback + 537
22  CoreGraphics                    0x3038046b CGImageProviderCopyImageBlockSetWithOptions + 135
23  QuartzCore                      0x3272b4dd CA::Render::create_image(CGImage*, CGColorSpace*, unsigned int) + 677
24  QuartzCore                      0x3272a98d CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double) + 289
25  QuartzCore                      0x32716807 CA::CG::fill_image(CA::CG::Renderer&, CGImage*, CA::Rect const&, CA::Mat2<float> const&, bool, bool, CGInterpolationQuality, CA::Bounds const*) + 1231
26  QuartzCore                      0x32716329 CA::CG::DrawImage::draw_image(CA::CG::Renderer&, bool) const + 77
27  QuartzCore                      0x32713081 0x326f7000 + 114817
28  QuartzCore                      0x3271179d CA::CG::Queue::render_callback(void*) + 265
29  libdispatch.dylib               0x3ae7de77 _dispatch_queue_drain + 371
30  libdispatch.dylib               0x3ae7af8f _dispatch_queue_invoke + 39
31  libdispatch.dylib               0x3ae7e743 _dispatch_root_queue_drain + 75
32  libdispatch.dylib               0x3ae7e9c1 _dispatch_worker_thread2 + 53
33  libsystem_pthread.dylib         0x3afa8dfd _pthread_wqthread + 297
34  libsystem_pthread.dylib         0x3afa8cc0 start_wqthread + 4

Thread 67:
0   libsystem_kernel.dylib          0x3af44c7c __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x3afa8e07 _pthread_wqthread + 307
2   libsystem_pthread.dylib         0x3afa8cc0 start_wqthread + 4

Thread 66 crashed with ARM Thread State (32-bit):
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000000      r3: 0x3aee7aa9
    r4: 0x00000006    r5: 0x0c2be000      r6: 0x00000000      r7: 0x0c2b76d4
    r8: 0x17d0dcf0    r9: 0x00000001     r10: 0x00000000     r11: 0x3b13fee8
    ip: 0x00000148    sp: 0x0c2b76c8      lr: 0x3afaba53      pc: 0x3af441fc
  cpsr: 0x00000010

Binary Images:
0xb4000 - 0x4c7fff TestApp armv7  <5c0bc5876928328c8f91fdf9b67fa8e7> /var/mobile/Applications/177CBA10-C0F0-4DEE-85B8-6FAB64BC70E6/TestApp.app/TestApp
1

There are 1 answers

0
Zsolt On BEST ANSWER

The problem came from Google Analytics.
Updated from 3.0 to 3.0.2. So it seems that the crash came from an outside library.

2014-01-06 14:58:39.518 TestApp[1099:1403] WARNING: GoogleAnalytics 3.0 void GAIUncaughtExceptionHandler(NSException *) (GAIUncaughtExceptionHandler.m:49): Uncaught exception: *** -[WebCoreSharedBufferData getBytes:range:]: range {0, 4000} exceeds data length 0
2014-01-06 14:58:44.542 TestApp[1099:1403] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[WebCoreSharedBufferData getBytes:range:]: range {0, 4000} exceeds data length 0'
*** First throw call stack:
(0x30996e83 0x3b0326c7 0x30996dc5 0x312d1d05 0x308ef2ad 0x316d0397 0x316d0271 0x316ec417 0x316eb7ef 0x316eb535 0x316eb36d 0x316eb2db 0x316ef249 0x316eed27 0x316d7c8b 0x30a1e46d 0x32dc94e1 0x32dc8991 0x32db480b 0x32db432d 0x32db1083 0x32daf7a1 0x3b51be7b 0x3b518f93 0x3b51c745 0x3b51c9c5 0x3b646dff 0x3b646cc4)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) bt

    * thread #3: tid = 0x2b343, 0x3b5e21fc libsystem_kernel.dylib`__pthread_kill + 8, queue = 'CA::CG::Queue, stop reason = signal SIGABRT
        frame #0: 0x3b5e21fc libsystem_kernel.dylib`__pthread_kill + 8
        frame #1: 0x3b649a52 libsystem_pthread.dylib`pthread_kill + 58
        frame #2: 0x3b59302c libsystem_c.dylib`abort + 76
        frame #3: 0x3a9e198e libc++abi.dylib`abort_message + 74
        frame #4: 0x3a9fa6e6 libc++abi.dylib`default_terminate_handler() + 254
        frame #5: 0x3b032938 libobjc.A.dylib`_objc_terminate() + 192
        frame #6: 0x3a9f81b2 libc++abi.dylib`std::__terminate(void (*)()) + 78
        frame #7: 0x3a9f7a08 libc++abi.dylib`__cxa_throw + 116
        frame #8: 0x3b03279a libobjc.A.dylib`objc_exception_throw + 250
        frame #9: 0x30996dc4 CoreFoundation`+[NSException raise:format:] + 112
        frame #10: 0x312d1d04 Foundation`-[NSData(NSData) getBytes:range:] + 240
        frame #11: 0x308ef2ac CoreFoundation`CFDataGetBytes + 204
        frame #12: 0x316d0396 ImageIO`CGImageReadGetBytesAtOffset + 282
        frame #13: 0x316d0270 ImageIO`CGImageReadSessionGetBytes + 28
        frame #14: 0x316ec416 ImageIO`fill_input_buffer + 150
        frame #15: 0x316eb7ee ImageIO`read_markers + 150
        frame #16: 0x316eb534 ImageIO`consume_markers + 36
        frame #17: 0x316eb36c ImageIO`_cg_jpeg_consume_input + 104
        frame #18: 0x316eb2da ImageIO`_cg_jpeg_read_header + 42
        frame #19: 0x316ef248 ImageIO`startDecompressing + 60
        frame #20: 0x316eed26 ImageIO`copyImageBlockSetJPEG + 3214
        frame #21: 0x316d7c8a ImageIO`ImageProviderCopyImageBlockSetCallback + 538
        frame #22: 0x30a1e46c CoreGraphics`CGImageProviderCopyImageBlockSetWithOptions + 136
        frame #23: 0x32dc94e0 QuartzCore`CA::Render::create_image(CGImage*, CGColorSpace*, unsigned int) + 680
        frame #24: 0x32dc8990 QuartzCore`CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double) + 292
        frame #25: 0x32db480a QuartzCore`CA::CG::fill_image(CA::CG::Renderer&, CGImage*, CA::Rect const&, CA::Mat2<float> const&, bool, bool, CGInterpolationQuality, CA::Bounds const*) + 1234
        frame #26: 0x32db432c QuartzCore`CA::CG::DrawImage::draw_image(CA::CG::Renderer&, bool) const + 80
        frame #27: 0x32db1082 QuartzCore`CA::CG::DrawOp::render(CA::CG::Renderer&) const + 2146
        frame #28: 0x32daf7a0 QuartzCore`CA::CG::Queue::render_callback(void*) + 268
        frame #29: 0x3b51be7a libdispatch.dylib`_dispatch_queue_drain + 374
        frame #30: 0x3b518f92 libdispatch.dylib`_dispatch_queue_invoke + 42
        frame #31: 0x3b51c744 libdispatch.dylib`_dispatch_root_queue_drain + 76
        frame #32: 0x3b51c9c4 libdispatch.dylib`_dispatch_worker_thread2 + 56
        frame #33: 0x3b646dfe libsystem_pthread.dylib`_pthread_wqthread + 298
        frame #34: 0x3b646cc4 libsystem_pthread.dylib`start_wqthread + 8
    (lldb)