A 32-bit Cocoa Mac app is a thin wrapper around a 32-bit framework.  I've 
received a dozen or so crash reports from users during the last year which 
start something like this…

1   MyFramework   0x00105066 MyInlineFunction + 188607
2   MyFramework   0x0001d8be MyFramework + 96446
3   MyFramework   0x0001ddc4 MyFramework + 97732
4   MyFramework   0x0001af43 MyFramework + 85827
5   MyFramework   0x0001ab0e MyFramework + 84750
6   Foundation    0x98910c52 __57-[NSNotificationCenter … … …

which indicates that the crash occurred in MyInlineFunction().  But this is 
wrong.  The program was nowhere near MyInlineFunction when the crash occurred.  
If I symbolize the address in that entry (0x00105066 in this example) with gdb 
and the dSYM, I get the correct line where the crash actually occurred.

The function MyInlineFunction() is the one and only function in the framework 
which I have declared as inline.

Also, there are some places in this app where I add a backtrace to the 
-userInfo of an NSError using the backtrace() function, and the app's custom 
error presentation dialog has a button which the user may click to send me the 
error.  I have also received a few backtraces via this mechanism which exhibit 
the same issue.  Apparently it is some relative of the backtrace() function 
which is responsible for the erroneous symbolization in the reports generated 
by Crash Reporter.  

If I create such an error on my Mac, where backtrace() has the benefit of 
either an unstripped Debug build or a matching dSYM file, the backtrace is 
symbolized correctly.

Such erroneous symbolization has emitted from Mac OS 10.8.2, 10.7, and possibly 
10.6.

What might be going on here?  It's like: When backtrace() can't find the symbol 
for an address, it grabs the symbol of the first inline function.

Jerry Krinock


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to