У меня довольно расстраивающий сбой, который затрагивает небольшую группу моих пользователей. Судя по моему анализу, он кажется изолированным для пользователей PowerPC под управлением 10.5. Когда сборщик мусора работает в фоновом режиме, он молча убивает мое приложение. Вот соответствующий фрагмент из краш-журнала.
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000093db26f8
Crashed Thread: 1
Application Specific Information:
objc[8361]: garbage collection is ON
test_node_integrity: FreeListNode 0x1184000 { _prev = 0x0, _next = 0xffffffff, _size = 0 } failed integrity check.
Thread 0:
0 libSystem.B.dylib 0x95a4c1f8 mach_msg_trap + 8
1 libSystem.B.dylib 0x95a5311c mach_msg + 56
2 com.apple.CoreFoundation 0x96a04394 CFRunLoopRunSpecific + 1812
3 com.apple.HIToolbox 0x9003fb14 RunCurrentEventLoopInMode + 264
4 com.apple.HIToolbox 0x9003f938 ReceiveNextEventCommon + 412
5 com.apple.HIToolbox 0x9003f778 BlockUntilNextEventMatchingListInMode + 84
6 com.apple.AppKit 0x94d18244 _DPSNextEvent + 596
7 com.apple.AppKit 0x94d17bfc -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 112
8 com.apple.AppKit 0x94d1189c -[NSApplication run] + 744
9 com.apple.AppKit 0x94ce2298 NSApplicationMain + 440
10 com.secondgear.checkoff 0x00002e48 start + 64
Thread 1 Crashed:
0 libauto.dylib 0x93db26f8 Auto::Admin::test_node_integrity(Auto::FreeListNode*) + 392
1 libauto.dylib 0x93db8dec Auto::Zone::block_deallocate_internal(void*) + 168
2 libauto.dylib 0x93da80d4 auto_collection_thread(void*) + 148
Мне не удалось воспроизвести сбой на моем старом PPC Mac, и расплывчатый характер ошибки затрудняет определение места сбоя на моем Mac.
Существуют ли какие-либо стратегии или инструменты отладки, которые я мог бы использовать, чтобы помочь изолировать это? Возможно, что-то, что я могу передать пользователю, чтобы выяснить, где / что вызывает сбой?