Re: backtrace() symbolizes wrong, to an inline function
Re: backtrace() symbolizes wrong, to an inline function
- Subject: Re: backtrace() symbolizes wrong, to an inline function
- From: Fritz Anderson <email@hidden>
- Date: Thu, 04 Oct 2012 13:07:39 -0500
On 4 Oct 2012, at 12:12 PM, Jerry Krinock <email@hidden> wrote:
> 1 MyFramework 0x00105066 MyInlineFunction + 188607
...
> 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.
...
> 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.
Well, yes. If symbols are not present in the executable, the trace will search backwards in memory to the closest symbol that happens to be defined.
In this case, frame 1 was stopped 188,607 bytes after the beginning of MyInlineFunction. Unless MyInlineFunction is very long, this is a sign that the information needed to show a meaningful symbol is absent. When you provide the information by pointing a tool at the matching dSYM, you get a meaningful symbol.
It's not an error; the data simply isn't there. Don't strip symbols, or do symbolicate.
— F
--
Fritz Anderson -- Xcode 4 Unleashed: 4.5 supplement in the works -- <http://x4u.manoverboard.org/>
_______________________________________________
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