Re: Instruments, how to fix leak in C Lib
Re: Instruments, how to fix leak in C Lib
- Subject: Re: Instruments, how to fix leak in C Lib
- From: Wim Lewis <email@hidden>
- Date: Wed, 02 May 2012 11:38:54 -0700
On 2 May 2012, at 10:55 AM, Wade Tregaskis wrote:
> Symbolication picks the first known symbol before the address in question. It's the consequence of a tragic design flaw in debug info formats to date.
>
> It's more obvious when this goes wrong in Crash Reporter or Shark where you can see the offsets (e.g. "CGContextLock + 38623824").
>
> It happens as a result of stripping of debug info from the built library. This is normal practice for release distributions. That you see it when you build from source yourself implies that you either didn't actually get your new version of the library loaded as expected, you didn't build it with full debug info to begin with, or that at some point some of the info was stripped again.
DWARF debug info, which is the standard on OSX now, is rich enough to solve this problem. Unfortunately Apple's "external dsyms" convention means that the debug info of open-source libraries usually gets lost before installation, and Apple doesn't include it in system frameworks either.
(Tail-call elimination is another reason that call stacks might not precisely match the structure of the source code, but from a glance at the libpq sources I think it's more likely that the lack of accurate debug info is the reason.)
Anyway, Jean-Daniel is probably right in suggesting that the bug isn't in libpq but in its caller--- odds are that some code is calling PQgetResult, and then failing to fulfill its obligation to release the resources returned to it.
_______________________________________________
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