解释Mac OS X崩溃报告

时间:2014-10-11 23:31:51

标签: objective-c macos crash stack-overflow crash-reports

我真的需要一些帮助来破译这个崩溃报告:

Process:               Farm Hand [616]
Path:                  /Applications/Farm Hand.app/Contents/MacOS/Farm Hand
Identifier:            Farm Hand
Version:               1.0 (1)
Code Type:             X86-64 (Native)
Parent Process:        Instruments [386]
Responsible:           Instruments [386]
User ID:               501

Date/Time:             2014-10-12 00:13:17.116 +0100
OS Version:            Mac OS X 10.10 (14A388a)
Report Version:        11
Anonymous UUID:        9C6E9671-468C-DBE5-F856-4D6923A3F425


Time Awake Since Boot: 1400 seconds

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGBUS)
Exception Codes:       KERN_PROTECTION_FAILURE at 0x00007fd37a589ae0

VM Regions Near 0x7fd37a589ae0:
    MALLOC_TINY            00007fd37a400000-00007fd37a500000 [ 1024K] rw-/rwx SM=PRV  
--> MALLOC_TINY            00007fd37a500000-00007fd37a800000 [ 3072K] rw-/rwx SM=COW  
    MALLOC_SMALL           00007fd37a800000-00007fd37a83c000 [  240K] rw-/rwx SM=ZER  

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   ???                             0x00007fd37a589ae0 0 + 140546267454176
1   com.apple.AppKit                0x00007fff9230b67a -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1875
2   com.apple.AppKit                0x00007fff92309516 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 913
3   com.apple.AppKit                0x00007fff92308c73 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 333
4   com.apple.AppKit                0x00007fff923057cb -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2761
5   com.apple.AppKit                0x00007fff922e41ca -[NSView displayIfNeeded] + 1876
6   com.apple.AppKit                0x00007fff923016c5 -[NSWindow displayIfNeeded] + 232
7   com.apple.AppKit                0x00007fff9233e8c2 _handleWindowNeedsDisplayOrLayoutOrUpdateConstraints + 936
8   com.apple.AppKit                0x00007fff92903d91 __83-[NSWindow _postWindowNeedsDisplayOrLayoutOrUpdateConstraintsUnlessPostingDisabled]_block_invoke1523 + 46
9   com.apple.CoreFoundation        0x00007fff8c8f9d87 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
10  com.apple.CoreFoundation        0x00007fff8c8f9ce0 __CFRunLoopDoObservers + 368
11  com.apple.CoreFoundation        0x00007fff8c8ebde8 __CFRunLoopRun + 872
12  com.apple.CoreFoundation        0x00007fff8c8eb838 CFRunLoopRunSpecific + 296
13  com.apple.HIToolbox             0x00007fff990a043f RunCurrentEventLoopInMode + 235
14  com.apple.HIToolbox             0x00007fff990a00be ReceiveNextEventCommon + 179
15  com.apple.HIToolbox             0x00007fff9909fffb _BlockUntilNextEventMatchingListInModeWithFilter + 71
16  com.apple.AppKit                0x00007fff921df821 _DPSNextEvent + 964
17  com.apple.AppKit                0x00007fff921defd0 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
18  com.apple.AppKit                0x00007fff921d2f73 -[NSApplication run] + 594
19  com.apple.AppKit                0x00007fff921be424 NSApplicationMain + 1832
20  libdyld.dylib                   0x00007fff919c15c9 start + 1

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x00007fff8e8dc22e kevent64 + 10
1   libdispatch.dylib               0x00007fff9a706a6a _dispatch_mgr_thread + 52

Thread 2:
0   libsystem_kernel.dylib          0x00007fff8e8db946 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9aac04a1 start_wqthread + 13

Thread 3:
0   libsystem_kernel.dylib          0x00007fff8e8db946 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9aac04a1 start_wqthread + 13

Thread 4:: Dispatch queue: com.apple.root.default-qos
0   libsqlite3.dylib                0x00007fff97cdf4b4 sqlite3HashInsert + 100
1   libsqlite3.dylib                0x00007fff97d7ef9e sqlite3CreateForeignKey + 1358
2   libsqlite3.dylib                0x00007fff97cea93e yy_reduce + 4622
3   libsqlite3.dylib                0x00007fff97ce95ea sqlite3Parser + 122
4   libsqlite3.dylib                0x00007fff97ce8544 sqlite3RunParser + 324
5   libsqlite3.dylib                0x00007fff97ce7cfa sqlite3Prepare + 794
6   libsqlite3.dylib                0x00007fff97ce78e7 sqlite3LockAndPrepare + 231
7   libsqlite3.dylib                0x00007fff97d0d3c3 sqlite3InitCallback + 771
8   libsqlite3.dylib                0x00007fff97ce74a4 sqlite3_exec + 964
9   libsqlite3.dylib                0x00007fff97d0ce21 sqlite3InitOne + 1457
10  libsqlite3.dylib                0x00007fff97d0c7de sqlite3Init + 94
11  libsqlite3.dylib                0x00007fff97d27f75 selectExpander + 1941
12  libsqlite3.dylib                0x00007fff97d27671 sqlite3WalkSelect + 81
13  libsqlite3.dylib                0x00007fff97def1ba sqlite3SelectPrep + 154
14  libsqlite3.dylib                0x00007fff97d1bde0 sqlite3Select + 464
15  libsqlite3.dylib                0x00007fff97ceaaae yy_reduce + 4990
16  libsqlite3.dylib                0x00007fff97ce95ea sqlite3Parser + 122
17  libsqlite3.dylib                0x00007fff97ce85f6 sqlite3RunParser + 502
18  libsqlite3.dylib                0x00007fff97ce7cfa sqlite3Prepare + 794
19  libsqlite3.dylib                0x00007fff97ce78e7 sqlite3LockAndPrepare + 231
20  libsqlite3.dylib                0x00007fff97d7de33 sqlite3_prepare_v2 + 195
21  rh.CoreFarmHand                 0x0000000109eeb500 -[RHFileController loadSheepMovementsOff:fromDatabaseAtPath:] + 624 (RHFileController.m:3330)
22  rh.CoreFarmHand                 0x0000000109ebd442 __73-[RHFarmDataController loadResourcesFromDatabaseForYear:animation:error:]_block_invoke + 4690 (RHFarmDataController.m:218)
23  libdispatch.dylib               0x00007fff9a708323 _dispatch_call_block_and_release + 12
24  libdispatch.dylib               0x00007fff9a703c13 _dispatch_client_callout + 8
25  libdispatch.dylib               0x00007fff9a70688f _dispatch_root_queue_drain + 935
26  libdispatch.dylib               0x00007fff9a714fe4 _dispatch_worker_thread3 + 91
27  libsystem_pthread.dylib         0x00007fff9aac26cb _pthread_wqthread + 729
28  libsystem_pthread.dylib         0x00007fff9aac04a1 start_wqthread + 13

Thread 5:: Dispatch queue: com.apple.root.default-qos
0   libobjc.A.dylib                 0x00007fff97aefb89 getMethodNoSuper_nolock(objc_class*, objc_selector*) + 71
1   libobjc.A.dylib                 0x00007fff97ae3a09 class_getInstanceMethod + 75
2   com.apple.Foundation            0x00007fff8e4d5218 -[NSKeyValueUndefinedSetter initWithContainerClassID:key:containerIsa:] + 76
3   com.apple.Foundation            0x00007fff8e4d515b +[NSObject(NSKeyValueCodingPrivate) _createValuePrimitiveSetterWithContainerClassID:key:] + 504
4   com.apple.Foundation            0x00007fff8e4b89db +[NSObject(NSKeyValueCodingPrivate) _createValueSetterWithContainerClassID:key:] + 540
5   com.apple.Foundation            0x00007fff8e4b8748 _NSKeyValueSetterForClassAndKey + 268
6   com.apple.Foundation            0x00007fff8e4b7e36 _NSKVONotifyingEnableForInfoAndKey + 222
7   com.apple.Foundation            0x00007fff8e491c7e -[NSKeyValueUnnestedProperty _isaForAutonotifying] + 101
8   com.apple.Foundation            0x00007fff8e491ada -[NSKeyValueUnnestedProperty isaForAutonotifying] + 74
9   com.apple.Foundation            0x00007fff8e4b737d -[NSObject(NSKeyValueObserverRegistration) _addObserver:forProperty:options:context:] + 602
10  com.apple.Foundation            0x00007fff8e4b6f7a -[NSObject(NSKeyValueObserverRegistration) addObserver:forKeyPath:options:context:] + 107
11  rh.CoreFarmHand                 0x0000000109e965f9 __38-[RHPersistentManager addSheepDeaths:]_block_invoke259 + 681 (RHPersistentManager.m:1074)
12  libdispatch.dylib               0x00007fff9a708323 _dispatch_call_block_and_release + 12
13  libdispatch.dylib               0x00007fff9a703c13 _dispatch_client_callout + 8
14  libdispatch.dylib               0x00007fff9a70688f _dispatch_root_queue_drain + 935
15  libdispatch.dylib               0x00007fff9a714fe4 _dispatch_worker_thread3 + 91
16  libsystem_pthread.dylib         0x00007fff9aac26cb _pthread_wqthread + 729
17  libsystem_pthread.dylib         0x00007fff9aac04a1 start_wqthread + 13

Thread 6:
0   libsystem_kernel.dylib          0x00007fff8e8db946 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff9aac04a1 start_wqthread + 13

Thread 7:
0   libsystem_kernel.dylib          0x00007fff8e8d652e mach_msg_trap + 10
1   libsystem_kernel.dylib          0x00007fff8e8d569f mach_msg + 55
2   com.apple.CoreFoundation        0x00007fff8c8ecb14 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation        0x00007fff8c8ebfdb __CFRunLoopRun + 1371
4   com.apple.CoreFoundation        0x00007fff8c8eb838 CFRunLoopRunSpecific + 296
5   com.apple.AppKit                0x00007fff923428f7 _NSEventThread + 137
6   libsystem_pthread.dylib         0x00007fff9aac22fc _pthread_body + 131
7   libsystem_pthread.dylib         0x00007fff9aac2279 _pthread_start + 176
8   libsystem_pthread.dylib         0x00007fff9aac04b1 thread_start + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x00007fd37a7e96b0  rcx: 0x00000000000fc080  rdx: 0x000000000002fb10
  rdi: 0x00007fd37a4a5700  rsi: 0x00007fff92b52ae3  rbp: 0x00007fff55df9420  rsp: 0x00007fff55df91d0
   r8: 0x0000000000000006   r9: 0x00007fd37a400000  r10: 0x00007fd37b087e30  r11: 0x00007fff7c561ec8
  r12: 0x00007fd37a4a5700  r13: 0x0000000000000000  r14: 0x0000014a164eaad8  r15: 0x0000000000000088
  rip: 0x00007fd37a589ae0  rfl: 0x0000000000010202  cr2: 0x00007fd37a589ae0

Logical CPU:     1
Error Code:      0x00000015
Trap Number:     14

我很确定这是堆栈溢出。我是正确的,它是一个递归循环吗?如果不是发生了什么!

1 个答案:

答案 0 :(得分:0)

不,它不是堆栈溢出。非法访问位于0x00007fd37a589ae0。 [NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:],其代码中有1875个字节,试图跳转到那里,这个内存区域是为数据保留的,而不是代码。特定的代码[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]不一定是错误的,或者实际上是调用堆栈中出现的任何代码。崩溃可能是由于调用堆栈中出现的函数(直接或间接)调用的任何函数中的错误导致的,并且此函数可能不再在调用堆栈中显示,因为它已完成执行并离开记忆中的定时炸弹。

堆栈指针寄存器包含值0x00007fff55df91d0,确认0x00007fd37a589ae0处的非法访问不可能是堆栈溢出。

此外,如果您不是Farm Hand的作者,除了将它发送给Farm Hand的作者之外,您对此报告没有任何用处(希望这个人是那种可以理解它的程序员) )或者为一个漫长而乏味的会话启动一个调试器。您在问题中提出的所有解释(递归,堆栈溢出)似乎都是错误的。