objective-c - 64 位模式下偶发 EXC_BAD_INSTRUCTION (SIGILL)

标签 objective-c cocoa macos 64-bit

出于某种原因,由于用户数量较少(例如几百分之一),应用程序在 Snow Leopard 10.6.3 上以 64 位模式运行时似乎会崩溃

我已附上堆栈跟踪。 com.apple.AppKit 中的崩溃似乎是在随机位置和随机时刻随机发生的。 还有人有过类似的经历吗?

使用Xcode 3.2.2的GCC编译器

用户的第 1 次崩溃

Code Type:       X86-64 (Native)
Parent Process:  launchd [90]

Date/Time:       2010-05-02 04:12:59.708 -0500
OS Version:      Mac OS X 10.6.3 (10D573)
Report Version:  6

Exception Type:  EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Application Specific Information:
objc[232]: alt handlers in objc runtime are buggy!

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                0x00007fff874dd8b7 _objc_fatal + 238
1   libobjc.A.dylib                0x00007fff874de57c objc_addExceptionHandler + 1026
2   com.apple.CoreFoundation       0x00007fff83914212 _CFDoExceptionOperation + 402
3   com.apple.AppKit               0x00007fff87afc55d _NSAppKitLock + 79
4   com.apple.AppKit               0x00007fff87bd1f93 +[NSColorList _findColorListNamed:forDeviceType:] + 86
5   com.apple.AppKit               0x00007fff87b9d304 -[NSCatalogColor colorUsingColorSpaceName:device:] + 255
6   com.apple.AppKit               0x00007fff87c985ad -[NSLayoutManager(NSPrivate) _drawGlyphsForGlyphRange:atPoint:parameters:] + 4764
7   com.apple.AppKit               0x00007fff87c5d79c -[NSTextView drawRect:] + 1839
8   com.apple.AppKit               0x00007fff87c5ce2e -[NSTextView _drawRect:clip:] + 2343
9   com.apple.AppKit               0x00007fff87be4485 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1325
10  com.apple.AppKit               0x00007fff87be47ef -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2199
11  com.apple.AppKit               0x00007fff87be2b57 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 767
12  com.apple.AppKit               0x00007fff87be3a23 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
13  com.apple.AppKit               0x00007fff87be3a23 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
14  com.apple.AppKit               0x00007fff87be3a23 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
15  com.apple.AppKit               0x00007fff87be3a23 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
16  com.apple.AppKit               0x00007fff87be3a23 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
17  com.apple.AppKit               0x00007fff87be3a23 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
18  com.apple.AppKit               0x00007fff87be3a23 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
19  com.apple.AppKit               0x00007fff87be3a23 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
20  com.apple.AppKit               0x00007fff87be2678 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 254
21  com.apple.AppKit               0x00007fff87bdef27 -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2683
22  com.apple.AppKit               0x00007fff87b58777 -[NSView displayIfNeeded] + 969
23  com.apple.AppKit               0x00007fff87b53622 _handleWindowNeedsDisplay + 678
24  com.apple.Foundation           0x00007fff8600fa4d __NSFireTimer + 114
25  com.apple.CoreFoundation       0x00007fff83908708 __CFRunLoopRun + 6488
26  com.apple.CoreFoundation       0x00007fff839068df CFRunLoopRunSpecific + 575
27  com.apple.HIToolbox            0x00007fff821b5ada RunCurrentEventLoopInMode + 333
28  com.apple.HIToolbox            0x00007fff821b58df ReceiveNextEventCommon + 310
29  com.apple.HIToolbox            0x00007fff821b5798 BlockUntilNextEventMatchingListInMode + 59
30  com.apple.AppKit               0x00007fff87b28a2a _DPSNextEvent + 708
31  com.apple.AppKit               0x00007fff87b28379 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
32  com.apple.AppKit               0x00007fff87d37060 -[NSTextView mouseDown:] + 8426
33  com.apple.AppKit               0x00007fff87c21f1b -[NSWindow sendEvent:] + 5409
34  com.apple.AppKit               0x00007fff87b57662 -[NSApplication sendEvent:] + 4719
35  com.apple.AppKit               0x00007fff87aee0aa -[NSApplication run] + 474
36  com.apple.AppKit               0x00007fff87ae6d7c NSApplicationMain + 364
37  com.NZBVortex.NZBVortex        0x0000000100000fe0 start + 52

同一用户稍后崩溃#2

Code Type:       X86-64 (Native)
Parent Process:  launchd [76]

Date/Time:       2010-05-02 11:59:33.226 +0200
OS Version:      Mac OS X 10.6.3 (10D573)
Report Version:  6

Exception Type:  EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Application Specific Information:
objc[4360]: alt handlers in objc runtime are buggy!

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                0x00007fff8015d8b7 _objc_fatal + 238
1   libobjc.A.dylib                0x00007fff8015e57c objc_addExceptionHandler + 1026
2   com.apple.CoreFoundation       0x00007fff85367212 _CFDoExceptionOperation + 402
3   com.apple.AppKit               0x00007fff840b5f2f -[NSViewHierarchyLock lockForReadingWithExceptionHandler:] + 478
4   com.apple.AppKit               0x00007fff8420753e -[NSConcreteTextStorage _lockForReading] + 243
5   com.apple.AppKit               0x00007fff841e1449 -[NSLayoutManager(NSPrivate) _fillGlyphHoleForCharacterRange:startGlyphIndex:desiredNumberOfCharacters:] + 320
6   com.apple.AppKit               0x00007fff840e204a _NSFastFillAllGlyphHolesForGlyphRange + 719
7   com.apple.AppKit               0x00007fff841e10e2 _NSFastFillAllLayoutHolesUpToEndOfContainerForGlyphIndex + 653
8   com.apple.AppKit               0x00007fff841e0c72 -[NSLayoutManager textContainerForGlyphAtIndex:effectiveRange:] + 243
9   com.apple.AppKit               0x00007fff840f6786 -[NSLayoutManager glyphRangeForTextContainer:] + 286
10  com.apple.AppKit               0x00007fff846664a9 -[NSToolTipStringDrawingLayoutManager _sizeWithSize:attributedString:] + 883
11  com.apple.AppKit               0x00007fff84665dad +[NSToolTipStringDrawingLayoutManager sizeForDisplayingAttributedString:] + 354
12  com.apple.AppKit               0x00007fff84667292 -[NSToolTipManager displayToolTip:] + 616
13  com.apple.AppKit               0x00007fff846657d4 toolTipTimerFired + 114
14  com.apple.CoreFoundation       0x00007fff8535b708 __CFRunLoopRun + 6488
15  com.apple.CoreFoundation       0x00007fff853598df CFRunLoopRunSpecific + 575
16  com.apple.HIToolbox            0x00007fff88510ada RunCurrentEventLoopInMode + 333
17  com.apple.HIToolbox            0x00007fff885108df ReceiveNextEventCommon + 310
18  com.apple.HIToolbox            0x00007fff88510798 BlockUntilNextEventMatchingListInMode + 59
19  com.apple.AppKit               0x00007fff840d1a2a _DPSNextEvent + 708
20  com.apple.AppKit               0x00007fff840d1379 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
21  com.apple.AppKit               0x00007fff8409705b -[NSApplication run] + 395
22  com.apple.AppKit               0x00007fff8408fd7c NSApplicationMain + 364
23  com.NZBVortex.NZBVortex        0x0000000100000fe0 start + 52

奇怪的是,当这些用户在 32 位模式下运行代码时,崩溃似乎消失了。

崩溃显然是在 32 位模式下仅在 AppKit 本身内部启动后才会触发,就像 NSThread sleep 的调用堆栈深处一样。

其他一些开发人员也看到了同样的情况: http://lists.apple.com/archives/objc-language/2008/Sep/msg00111.html

无法理解为什么以及是否可以获得更多背景信息。

最佳答案

我已添加 Apple 支持请求,他们确认这是 Mac 操作系统问题。 如果他们报告更多信息,将发布更多信息。

关于objective-c - 64 位模式下偶发 EXC_BAD_INSTRUCTION (SIGILL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753172/

相关文章:

ios - 在不引用文本字段的情况下关闭键盘

cocoa - IBOutlet 控件为零

html - html accept属性在不同的操作系统上以不同的方式工作

xcode - 覆盖 NSCollectionView 项目大小

ios - 使用 UILabels 和 UITableViewCell 创建自定义 UIActionSheet/UIView

ios - 重新登录 iOS 应用程序时内存泄漏

iphone - 在为 iPhone 集成 zxing 的同时管理 View

objective-c - 通过 NSView 或 Magnify 放大和缩小

ios - 在 Xcode 5 中创建静态库

macos - vscode : Why do I have a green titlebar and sidebar?