簡體   English   中英

如何修復無法復制的應用崩潰? 崩潰報告和控制台日志已附加

[英]How can I fix an app crash which is irreproducible? Crash report and console log attached

我的ios應用程序使用了很多核心數據和核心動畫。 由於多線程,它有時會以不可復制的方式崩潰。 任何編程忍者都可以幫助您解決此崩潰問題嗎? 我不知道我有一個空的mutablearray叫做objectAtIndex

另外我也不知道如何跟蹤CGContext錯誤發生的位置。 由於它不是NSException ,所以我不打算在那里設置斷點。 有人可以教我如何在CGContext錯誤出現時設置斷點嗎?

我的控制台日志:

  May 30 09:12:39 Dons-iPod-touch larklife[6914] <Warning>: EventsViewController.m              680: indexPath in finish block<NSIndexPath 0x1f18fe60> 2 indexes [1, 0]

  May 30 09:12:39 Dons-iPod-touch larklife[6914] <Error>: CGContextSetFillColorWithColor: invalid context 0x0

  May 30 09:12:39 Dons-iPod-touch larklife[6914] <Error>: CGContextSaveGState: invalid context 0x0

  May 30 09:12:39 Dons-iPod-touch larklife[6914] <Error>: CGContextSetFlatness: invalid context 0x0

  May 30 09:12:39 Dons-iPod-touch larklife[6914] <Error>: CGContextAddPath: invalid context 0x0

  May 30 09:12:39 Dons-iPod-touch larklife[6914] <Error>: CGContextDrawPath: invalid context 0x0

  May 30 09:12:39 Dons-iPod-touch larklife[6914] <Error>: CGContextRestoreGState: invalid context 0x0

  May 30 09:12:40 Dons-iPod-touch larklife[6914] <Error>: *** Terminating app due to    uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
*** First throw call stack:
(0x330e92a3 0x3ad6797f 0x33034b75 0x32f5bc0d 0xeb555 0xe5c9b 0x106549 0xe1521  0xebcad 0xde557 0xe4589 0xe5275 0x24b06d 0x339f7277 0x330be5df 0x330be291 0x330bcf01 0x3302febd 0x3302fd49 0x36be22eb 0x34f45301 0x206fd 0x3b19eb20)

崩潰報告:

Incident Identifier: C18D4D70-7157-4456-900B-077BDE488A70
CrashReporter Key:   7531fede04c2aea4fcfb40a804a8e2fdb0a4cb79
Hardware Model:      iPod4,1
Process:         larklife [6914]
Path:            /var/mobile/Applications/30FAAA4E-1FC4-452F-82E2- 1E706A34A0B8/larklife.app/larklife
Identifier:      larklife
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2013-05-30 09:12:40.483 -0700
OS Version:      iOS 6.1.3 (10B329)
Report Version:  104

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

Last Exception Backtrace:
0   CoreFoundation                  0x330e929e __exceptionPreprocess + 158
1   libobjc.A.dylib                 0x3ad6797a objc_exception_throw + 26
2   CoreFoundation                  0x33034b70 -[__NSArrayM objectAtIndex:] + 160
3   CoreData                        0x32f5bc08 -[NSFetchedResultsController objectAtIndexPath:] + 236
4   larklife                        0x000eb550 0x19000 + 861520
5   larklife                        0x000e5c96 0x19000 + 838806
6   larklife                        0x00106544 0x19000 + 972100
7   larklife                        0x000e151c 0x19000 + 820508
8   larklife                        0x000ebca8 0x19000 + 863400
9   larklife                        0x000de552 0x19000 + 808274
10  larklife                        0x000e4584 0x19000 + 832900
11  larklife                        0x000e5270 0x19000 + 836208
12  larklife                        0x0024b068 0x19000 + 2302056
13  Foundation                      0x339f7272 __NSFireDelayedPerform + 446
14  CoreFoundation                  0x330be5da __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 10
15  CoreFoundation                  0x330be28c __CFRunLoopDoTimer + 268
16  CoreFoundation                  0x330bcefc __CFRunLoopRun + 1228
17  CoreFoundation                  0x3302feb8 CFRunLoopRunSpecific + 352
18  CoreFoundation                  0x3302fd44 CFRunLoopRunInMode + 100
19  GraphicsServices                0x36be22e6 GSEventRunModal + 70
20  UIKit                           0x34f452fc UIApplicationMain + 1116
21  larklife                        0x000206f8 0x19000 + 30456
22  libdyld.dylib                   0x3b19eb1c start + 0


Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x3b265350 __pthread_kill + 8
1   libsystem_c.dylib               0x3b1dc11e pthread_kill + 54
2   libsystem_c.dylib               0x3b21896e abort + 90
3   libc++abi.dylib                 0x3a7b6d4a abort_message + 70
4   libc++abi.dylib                 0x3a7b3ff4 _ZL17default_terminatev + 20
5   libobjc.A.dylib                 0x3ad67a74 _ZL15_objc_terminatev + 144
6   libc++abi.dylib                 0x3a7b4078 _ZL19safe_handler_callerPFvvE + 76
7   libc++abi.dylib                 0x3a7b4110 std::terminate() + 16
8   libc++abi.dylib                 0x3a7b5594 __cxa_rethrow + 84
9   libobjc.A.dylib                 0x3ad679cc objc_exception_rethrow + 8
10  CoreFoundation                  0x3302ff1c CFRunLoopRunSpecific + 452
11  CoreFoundation                  0x3302fd44 CFRunLoopRunInMode + 100
12  GraphicsServices                0x36be22e6 GSEventRunModal + 70
13  UIKit                           0x34f452fc UIApplicationMain + 1116
14  larklife                        0x000206f8 0x19000 + 30456
15  libdyld.dylib                   0x3b19eb1c start + 0

Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0   libsystem_kernel.dylib          0x3b255648 kevent64 + 24
1   libdispatch.dylib               0x3b18e4ec _dispatch_mgr_invoke + 792
2   libdispatch.dylib               0x3b180df4 _dispatch_mgr_thread$VARIANT$up + 32

Thread 2 name:  WebThread
Thread 2:
0   libsystem_kernel.dylib          0x3b254eb4 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3b255048 mach_msg + 36
2   CoreFoundation                  0x330be040 __CFRunLoopServiceMachPort + 124
3   CoreFoundation                  0x330bcd9e __CFRunLoopRun + 878
4   CoreFoundation                  0x3302feb8 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x3302fd44 CFRunLoopRunInMode + 100
6   WebCore                         0x3901d500 _ZL12RunWebThreadPv + 440
7   libsystem_c.dylib               0x3b1be30e _pthread_start + 306
8   libsystem_c.dylib               0x3b1be1d4 thread_start + 4

Thread 3:
0   libsystem_kernel.dylib          0x3b265d98 __workq_kernreturn + 8
1   libsystem_c.dylib               0x3b1b3cf6 _pthread_workq_return + 14
2   libsystem_c.dylib               0x3b1b3a12 _pthread_wqthread + 362
3   libsystem_c.dylib               0x3b1b38a0 start_wqthread + 4

Thread 4:
0   libsystem_kernel.dylib          0x3b265d98 __workq_kernreturn + 8
1   libsystem_c.dylib               0x3b1b3cf6 _pthread_workq_return + 14
2   libsystem_c.dylib               0x3b1b3a12 _pthread_wqthread + 362
3   libsystem_c.dylib               0x3b1b38a0 start_wqthread + 4

Thread 5 name:  com.apple.NSURLConnectionLoader
Thread 5:
0   libsystem_kernel.dylib          0x3b254eb4 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x3b255048 mach_msg + 36
2   CoreFoundation                  0x330be040 __CFRunLoopServiceMachPort + 124
3   CoreFoundation                  0x330bcd9e __CFRunLoopRun + 878
4   CoreFoundation                  0x3302feb8 CFRunLoopRunSpecific + 352
5   CoreFoundation                  0x3302fd44 CFRunLoopRunInMode + 100
6   Foundation                      0x3397c3d0 +[NSURLConnection(Loader) _resourceLoadLoop:] + 304
7   Foundation                      0x339ffe80 __NSThread__main__ + 968
8   libsystem_c.dylib               0x3b1be30e _pthread_start + 306
9   libsystem_c.dylib               0x3b1be1d4 thread_start + 4

Thread 6 name:  com.apple.CFSocket.private
Thread 6:
0   libsystem_kernel.dylib          0x3b265594 __select + 20
1   CoreFoundation                  0x330c21f2 __CFSocketManager + 674
2   libsystem_c.dylib               0x3b1be30e _pthread_start + 306
3   libsystem_c.dylib               0x3b1be1d4 thread_start + 4

Thread 7 name:  Dispatch queue: NSManagedObjectContext Queue
Thread 7:
0   CoreData                        0x32ebe19c _kvcPropertysPrimitiveSetters + 0
1   CoreData                        0x32edc700 _sharedIMPL_setvfk_core + 44
2   larklife                        0x000ba374 0x19000 + 660340
3   CoreData                        0x32ed0bf0 _PF_Handler_Public_SetProperty + 88
4   CoreData                        0x32ed312a -[NSManagedObject setValue:forKey:] + 86
5   larklife                        0x002314f2 0x19000 + 2196722
6   larklife                        0x00060ed8 0x19000 + 294616
7   CoreFoundation                  0x330dd99e __NSArrayEnumerate + 394
8   CoreFoundation                  0x3303fb66 -[NSArray enumerateObjectsWithOptions:usingBlock:] + 58
9   larklife                        0x00060d44 0x19000 + 294212
10  larklife                        0x0005d204 0x19000 + 279044
11  CoreData                        0x32ee6072 developerSubmittedBlockToNSManagedObjectContextPerform_privateasync + 66
12  libdispatch.dylib               0x3b17e996 _dispatch_queue_drain$VARIANT$up + 142
13  libdispatch.dylib               0x3b17e890 _dispatch_queue_invoke$VARIANT$up + 32
14  libdispatch.dylib               0x3b18d212 _dispatch_root_queue_drain + 190
15  libdispatch.dylib               0x3b18d3b4 _dispatch_worker_thread2 + 80
16  libsystem_c.dylib               0x3b1b3a0e _pthread_wqthread + 358
17  libsystem_c.dylib               0x3b1b38a0 start_wqthread + 4

Thread 0 crashed with ARM Thread State (32-bit):
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000000      r3: 0x3cd16534
    r4: 0x00000006    r5: 0x3cd16b88      r6: 0x1f483d54      r7: 0x2fde7a04
    r8: 0x1f483d30    r9: 0x00000400     r10: 0x00000000     r11: 0x00000000
    ip: 0x00000148    sp: 0x2fde79f8      lr: 0x3b1dc123      pc: 0x3b265350
  cpsr: 0x00080010

您的錯誤消息說:

[__NSArrayM objectAtIndex:]:索引0超出范圍

原因可能是使用NSMUtableArray__NSArrayM並不是線程安全的 ,請參見此處
如果沒有提供任何代碼,建議您仔細閱讀引用的《線程編程指南》,並相應地更正代碼。

events viewcontroller.m ,您使用的數組在索引0和1處為空。請檢查代碼160和236中是否出現錯誤。 這絕對與獲取數據有關。 似乎無法從您的存儲中獲取數據。 這是我沒有看到實際代碼收集的。

您試圖獲取一個空數組的第一個元素,這會導致崩潰,並且異常是不言自明的。

您可以使用po命令(打印對象)在應用程序崩潰時調試數組:

po the_array_object

另外,請確保在斷點導航器中將斷點設置為ON ,以使編譯器更好地進行調試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM