"No line number information available for address 0xXXXXX"
"No line number information available for address 0xXXXXX"
- Subject: "No line number information available for address 0xXXXXX"
- From: Jerry Krinock <email@hidden>
- Date: Tue, 31 Mar 2009 11:35:29 -0700
In my app's Xcode project, I have set the Release build to strip the
product and Generate Debug Symbols in format DWARF with dSYM file.
And I believe that my shipping script dutifully copies the .dSYM file
for the main executable and all frameworks to an archive along with
the app during the final build.
When I get a crash report from a user, I try Joakim Johansson's
dSymbolizer, and if that doesn't work I try my manual procedure with
gdb [1].
It works about 50% the time. The other 50% the time, dSymbolizer
"just doesn't work" and gdb tells me:
No line number information available for address 0xXXXXXX
Since, fortunately, I don't get crash reports very often, I'm
wondering others if others get a higher than 50% success rate, and if
so what I can do to improve my success rate.
Is 50% success rate typical for Cocoa applications?
What are the most likely causes of failure? Possible responses:
a) It always works for me. Your Xcode settings or script must be
screwed up.
b) This is magic and you're lucky to get whatever you get.
c) You can't get information in case xxxxxxxxx.
Possibilities...
When I give gdb an address and it tells me "No information", can I
come back and say "Well, OK, then give me all of the addresses for the
symbols that you ^do^ have. Look, .dSYM files are typically a few
hundred KB. Certainly there must be some useful information in there!
Is there any way to read out the UUIDs of the Universal executable, so
I can verify them against the UUIDs in the .dSYM's Info.plist?
Thanks,
Jerry Krinock
[1] My Manual Symbolizing Procedure
0) Provide both the crashing .app and the relevant.dSYM files in the
same folder.
1) Open a Terminal window and enter "gdb" with no options, unless your
crash report is from a different architecture. Then, you must make
sure you use the correct -arch flag. Example, if the crash occurred
on a PowerPC and you are not running now on a PowerPC: 'gdb -arch ppc'.
2) Enter the command 'set sharedlibrary preload-libraries no'.
3) Enter the command 'cd path/to/parent/directory/containing/the/.app'.
4) Load your binary with the 'file' command.
5) Look at the crash report and find a line in the call stack that
you're interested in, then type
info line *0xSOME_ADDRESS
For example if the crash report has the following line which
you're interested in:
12 com.myCompany.MyApp 0x0002ef5f 0x1000 + 254908
Enter the command:
info line *0x0002ef5f
6) Hit 'return' and hope that it works!
_______________________________________________
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