Re: HELP! My app crashes on startup, with a very weird stack trace.
Re: HELP! My app crashes on startup, with a very weird stack trace.
- Subject: Re: HELP! My app crashes on startup, with a very weird stack trace.
- From: Jesper Storm Bache <email@hidden>
- Date: Tue, 2 Feb 2010 12:22:13 -0800
- Acceptlanguage: en-US
- Thread-topic: HELP! My app crashes on startup, with a very weird stack trace.
My advice is: Don't do this in release builds. There is nothing that says that Apple in the future will throw more exceptions inside their implementation (in a different framework) - and you'll then have to patch your handler again.
Feel free to experiment with this kind of functionality in your debug builds.
Alternatively have a "Debug level" preference that you can have users turn on (and off). Make the default "Off".
Jesper
On Feb 2, 2010, at 12:18 PM, Oleg Krupnov wrote:
> Fixed now, it worked like a charm! :)
>
> Indeed, I was intercepting exceptions from the AX framework in my -
> (BOOL)exceptionHandler:(NSExceptionHandler*)sender
> shouldHandleException:(NSException*)exception mask:(unsigned int)mask
> delegate method. This only occurs on Snow Leopard but not on Leopard.
> I was able to reproduce the bug using the Accessibility Inspector
> utility. And I have fixed it as advised.
>
> Thanks a ton to everybody who responded!!!
>
>
> On Tue, Feb 2, 2010 at 9:09 PM, Jesper Storm Bache <email@hidden> wrote:
>> Are you sure you are seeing "unhandled exceptions", or simply "NSExceptions" that are handled somewhere inside the Ax framework.
>> If it is the latter, then you'll need to allow NSExceptions from inside the Ax framework to propagate to their handlers (also inside the Ax framework).
>> Note: Apple does *not* guarantee that their implementation is NSException free; you just should not see such exceptions being thrown back to your code.
>>
>> For this reason I only enable NSException detection logic in my debug builds, and the current version of my debug handler is:
>>
>> void ExceptionCallback(id exceptionObject)
>> {
>> bool doBreak = true;
>> if ([exceptionObject isKindOfClass:[NSException class]])
>> {
>> NSString* name = [exceptionObject name];
>>
>> // Ignore exceptions from the accessibility framework because it uses
>> // exceptions for flow control
>> doBreak = ![name isEqualToString:NSAccessibilityException];
>> }
>>
>> if (doBreak)
>> {
>> report_problem(...)
>> }
>> }
>>
>> Jesper Storm Bache
>>
>> On Feb 2, 2010, at 10:58 AM, Oleg Krupnov wrote:
>>
>>> Thanks Ken,
>>>
>>> I don't quite understand your response though. What do you mean by
>>> "unexceptional exceptions"? How should I handle those exceptions, and
>>> why should I, if I don't make any calls to accessibility frameworks at
>>> all?
>>>
>>> The report I have included in the first post is all I have so far.
>>>
>>>
>>>
>>> On Tue, Feb 2, 2010 at 8:51 PM, Ken Ferry <email@hidden> wrote:
>>>> Hi Oleg,
>>>> Unfortunately, the accessibility mechanism uses unexceptional exceptions
>>>> under the hood. These are a normal part of operation. They shouldn't be
>>>> unhandled though… are you sure you're reporting what you think you are?
>>>> -Ken
>>>> On Tue, Feb 2, 2010 at 6:41 PM, Oleg Krupnov <email@hidden> wrote:
>>>>>
>>>>> Hi Corbin,
>>>>>
>>>>> Thanks for your quick response. You are right, I should have been more
>>>>> specific. This is not a "crash" in precise meaning. This is an
>>>>> unhandled exception raised by appkit's accessibility and caught by my
>>>>> crash reporter facility that prints the stack trace and sends it to me
>>>>> by e-mail. There is no real, severe crash like that one when you see
>>>>> the Apple's crash report dialog.
>>>>>
>>>>> The question is -- why this exception is raised? I don't even mention
>>>>> anything related to AX anywhere in my app. I must confess I have never
>>>>> even read the accessibility section of the docs and don't know what it
>>>>> is.
>>>>>
>>>>>> From the stack trace it appears that the exception occurs even before
>>>>> any of my own code is entered, somewhere in system frameworks.
>>>>>
>>>>> And it happens only on selected Macs.
>>>>>
>>>>> Do you have any idea?
>>>>>
>>>>> Thanks.
>>>>>
>>>>> On Tue, Feb 2, 2010 at 8:34 PM, Corbin Dunn <email@hidden> wrote:
>>>>>> Oleg,
>>>>>>
>>>>>> I think you are misinterpreting an exception being raised as a crash of
>>>>>> your application. The bt's below are not crashes; they are exceptions being
>>>>>> raised (and caught) by appkit's accessibility.
>>>>>>
>>>>>> I understand that you have a problem with your app crashing -- do you
>>>>>> have some actual crash reports? If so, reply with those to the list and we
>>>>>> may be able to help you.
>>>>>>
>>>>>> -corbin
>>>>>>
>>>>>> On Feb 2, 2010, at 10:04 AM, Oleg Krupnov wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> After publishing an update of my app, I have received quite a few
>>>>>>> crash dumps with very weird stack traces that I cannot understand and
>>>>>>> fix.
>>>>>>>
>>>>>>> Namely, the exception message says that AXTitle, or AXWindow or
>>>>>>> AXValue or AXDocument etc. is unsupported by NSWindow, NSOpenPanel,
>>>>>>> NSApplication and others. Does it have something to do with
>>>>>>> accessibility? In what way?
>>>>>>>
>>>>>>> If someone knows what's that supposed to mean, a quick response would
>>>>>>> be very much appreciated. This is an emergency for me.
>>>>>>>
>>>>>>> Here's one of those logs (All those users are running Snow Leopard
>>>>>>> 10.6.2):
>>>>>>>
>>>>>>> MESSAGE:
>>>>>>> "AXTitle" attribute unsupported by: <NSOpenPanel: 0x5bb190>
>>>>>>>
>>>>>>> STACK TRACE:
>>>>>>> #0 0x98b80d24 NSExceptionHandlerExceptionRaiser()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling)
>>>>>>> #1 0x94bc5509 objc_exception_throw() (/usr/lib/libobjc.A.dylib)
>>>>>>> #2 0x97a91a21 +[NSException raise]
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #3 0x91d9a55c NSAccessibilityAttributeValue()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #4 0x91fb243f CopyAppKitUIElementAttributeValueNoCatch()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #5 0x91fb49d7 CopyAttributeValue()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #6 0x9476bad3 _AXXMIGCopyAttributeValue()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #7 0x94775b96 _XCopyAttributeValue()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #8 0x94747c39 mshMIGPerform()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #9 0x979b28db __CFRunLoopRun()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #10 0x979b0864 CFRunLoopRunSpecific()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #11 0x979b0691 CFRunLoopRunInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #12 0x973c9f0c RunCurrentEventLoopInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #13 0x973c9cc3 ReceiveNextEventCommon()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #14 0x973c9b48 BlockUntilNextEventMatchingListInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #15 0x91d4eac5 _DPSNextEvent()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #16 0x91d4e306 -[NSApplication
>>>>>>> nextEventMatchingMask:untilDate:inMode:dequeue:]()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #17 0x13a2754b +[NSApplication
>>>>>>> nextEventMatchingMask:untilDate:inMode:dequeue:]
>>>>>>> (/Library/PreferencePanes/Smart Scroll.prefPane/Contents/MacOS/Smart
>>>>>>> Scroll.bundle/Contents/MacOS/Smart Scroll)
>>>>>>> #18 0x91d1049f +[NSApplication run]
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #19 0x91d08535 NSApplicationMain()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #20 0x0022ca start()
>>>>>>> (/Applications/DaisyDisk.app/Contents/MacOS/DaisyDisk)
>>>>>>> #21 0x000002 ??() (??)
>>>>>>>
>>>>>>> Here is another:
>>>>>>>
>>>>>>> MESSAGE:
>>>>>>> "AXValue" attribute unsupported by: <NSButtonCell: 0x5cd0d0>
>>>>>>>
>>>>>>> STACK TRACE:
>>>>>>> #0 0x95d86d24 NSExceptionHandlerExceptionRaiser()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling)
>>>>>>> #1 0x9212d509 objc_exception_throw() (/usr/lib/libobjc.A.dylib)
>>>>>>> #2 0x94dcba21 +[NSException raise]
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #3 0x938de55c NSAccessibilityAttributeValue()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #4 0x93af643f CopyAppKitUIElementAttributeValueNoCatch()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #5 0x93af89d7 CopyAttributeValue()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #6 0x90b34ad3 _AXXMIGCopyAttributeValue()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #7 0x90b3eb96 _XCopyAttributeValue()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #8 0x90b10c39 mshMIGPerform()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #9 0x94cec8db __CFRunLoopRun()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #10 0x94cea864 CFRunLoopRunSpecific()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #11 0x94cea691 CFRunLoopRunInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #12 0x98525f0c RunCurrentEventLoopInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #13 0x98525bff ReceiveNextEventCommon()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #14 0x98525b48 BlockUntilNextEventMatchingListInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #15 0x93892ac5 _DPSNextEvent()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #16 0x93892306 +[NSApplication
>>>>>>> nextEventMatchingMask:untilDate:inMode:dequeue:]
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #17 0x9385449f +[NSApplication run]
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #18 0x9384c535 NSApplicationMain()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #19 0x0022ca start()
>>>>>>> (/Applications/DaisyDisk.app/Contents/MacOS/DaisyDisk)
>>>>>>> #20 0x000002 ??() (??)
>>>>>>>
>>>>>>> Here's yet another:
>>>>>>>
>>>>>>> MESSAGE:
>>>>>>> "AXValue" attribute unsupported by: <MainWindow: 0x227270>
>>>>>>>
>>>>>>> STACK TRACE:
>>>>>>> #0 0x95d86d24 NSExceptionHandlerExceptionRaiser()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling)
>>>>>>> #1 0x9212d509 objc_exception_throw() (/usr/lib/libobjc.A.dylib)
>>>>>>> #2 0x94dcba21 +[NSException raise]
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #3 0x938de55c NSAccessibilityAttributeValue()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #4 0x93af643f CopyAppKitUIElementAttributeValueNoCatch()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #5 0x93af89d7 CopyAttributeValue()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #6 0x90b34ad3 _AXXMIGCopyAttributeValue()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #7 0x90b3eb96 _XCopyAttributeValue()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #8 0x90b10c39 mshMIGPerform()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices)
>>>>>>> #9 0x94cec8db __CFRunLoopRun()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #10 0x94cea864 CFRunLoopRunSpecific()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #11 0x94cea691 CFRunLoopRunInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
>>>>>>> #12 0x98525f0c RunCurrentEventLoopInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #13 0x98525cc3 ReceiveNextEventCommon()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #14 0x98525b48 BlockUntilNextEventMatchingListInMode()
>>>>>>>
>>>>>>> (/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox)
>>>>>>> #15 0x93892ac5 _DPSNextEvent()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #16 0x93892306 +[NSApplication
>>>>>>> nextEventMatchingMask:untilDate:inMode:dequeue:]
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #17 0x9385449f +[NSApplication run]
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #18 0x9384c535 NSApplicationMain()
>>>>>>> (/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
>>>>>>> #19 0x0022ca start()
>>>>>>> (/Applications/DaisyDisk.app/Contents/MacOS/DaisyDisk)
>>>>>>> #20 0x000002 ??() (??)
>>>>>>>
>>>>>>> Thanks!
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>>
>>>>> Cocoa-dev mailing list (email@hidden)
>>>>>
>>>>> Please do not post admin requests or moderator comments to the list.
>>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>>>
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>
>>>>> This email sent to email@hidden
>>>>
>>>>
>>> _______________________________________________
>>>
>>> Cocoa-dev mailing list (email@hidden)
>>>
>>> Please do not post admin requests or moderator comments to the list.
>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden