Re: DWARF with or without dSYM?
Re: DWARF with or without dSYM?
- Subject: Re: DWARF with or without dSYM?
- From: Ken Thomases <email@hidden>
- Date: Mon, 14 Mar 2016 16:25:27 -0500
On Mar 14, 2016, at 4:08 PM, Jens Alfke <email@hidden> wrote:
On Mar 14, 2016, at 1:58 PM, Jim Ingham < email@hidden> wrote:
You can build a dSYM for any linked image. The only thing you can't build it for is object and archive files. Whether to do it or not is just a tradeoff between build time & preserving debug information long term.
Thanks … but I’m not getting any insight from that. How about some specific questions, if I may: If I build a static library (.a file) that another developer will link into their app, do I need to provide a dSYM file too, or does the library already include all the debug info?
You can't build a .dSYM for a static library and don't need to. The debug information is initially stored in the .o files and a static library is really just an archive of those .o files, so it contains all of the debug info. What about a framework (with a dylib), again to be used in another developer’s app? Is there any use for a dSYM file with that?
Yes, you _need_ to use a .dSYM bundle for that. Anybody who doesn't have the original .o files would not have the debug information without that.
If you use just the DWARF option (not "with dSYM"), then the debug information remains in the .o files and the linked executable only references those .o files.
(And if so where does it go? Inside the .framework somewhere?)
I would not deliver it in the framework because then the developers who build an app using your framework will likely end up shipping the .dSYM to their end users. That wastes space and is mostly useless.
You should just provide the .dSYM bundle as a separate file. It can go anywhere.
I think I’m generally unclear about what uses dSYM files. Just LLDB?
LLDB and anything which symbolicates code addresses. Crash reports, maybe. Sample reports. Instruments. And how does it find them?
Well, it can find them next to the corresponding executable, but it can also find them elsewhere. Each linked executable has an embedded UUID and that is coped to the .dSYM. Spotlight indexes the UUIDs of .dSYM bundles and the various programs which wish to use them can look them up that way. So, really, the .dSYM bundle can be anywhere on your system that Spotlight indexes.
Regards, Ken
|
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden