title: Sporadic EXC_BAD_INSTRUCTION (SIGILL) when in 64 bit mode
body: <p>For some reason for a low-number of users (say 1 in a few hundred) the application seem to crash when run in 64bit mode on a Snow Leopard 10.6.3</p>
  
  <p>I've attached the stack traces.
  The crashed seem to be random in com.apple.AppKit at random locations and random moments.
  Anyone else had any experiences?</p>
  
  <p>Using GCC compiler of Xcode 3.2.2</p>
  
  <p><strong>Crash #1 of user</strong></p>
  
  <pre><code>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
  </code></pre>
  
  <p><strong>Crash #2 from same user moments later</strong></p>
  
  <pre><code>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
  </code></pre>
  
  <p>Weirdly enough the crashes seem to go away for these users when running the code in 32 bit mode.</p>
  
  <p>The crashes clearly are triggered in 32 bit mode only just after start inside the AppKit itself like deep inside NSThread sleep's callstack.</p>
  
  <p>Some other devs have seen the same:
  <a href="http://lists.apple.com/archives/objc-language/2008/Sep/msg00111.html" rel="nofollow noreferrer">http://lists.apple.com/archives/objc-language/2008/Sep/msg00111.html</a></p>
  
  <p>Can't wrap my head around why and if I can get more background info.</p>