Re: Crash report doesn't list function names?
Re: Crash report doesn't list function names?
- Subject: Re: Crash report doesn't list function names?
- From: "Theodore H. Smith" <email@hidden>
- Date: Fri, 22 Jun 2007 19:31:21 +0100
On 22 Jun 2007, at 18:30, Chris Espinosa wrote:
On Jun 22, 2007, at 9:59 AM, Theodore H. Smith wrote:
On Jun 22, 2007, at 9:16 AM, Theodore H. Smith wrote:
STRIP_STYLE = all
That's probably it.
Chris
Really? I probably misunderstood the strip symbols option in Xcode
then.
What should it be?
Xcode gives me these 3 options:
"All Symbols - Completely strips the binary, removing the symbol
table and relocation information. [all, -s]
Non-Global Symbols - Strips non-global symbols, but saves external
symbols. [non-global, -x]
Debugging Symbols - Strips debugging symbols, but saves local and
global symbols. [debugging, -S]"
If I strip them all, I lose the debugging symbols. If I strip the
debugging symbols, I lose the debugging symbols.
Is it "non-global symbols", then?
There is no "No symbols" option :( That's why I thought it didn't
matter. Because I have my "STRIP_INSTALLED_PRODUCT = NO" option
set. I thought that cancels out the strip setting.
Now that I've read your original email more closely:
STRIP_INSTALLED_PRODUCT only affects your "install" build—that is,
when you do an "xcodebuild install" from the command line, or set
Deployment Postprocessing in your configuration. It's for
stripping the product that you ship to customers, and isn't
relevant to debugging.
The STRIP_STYLE only takes effect when STRIP_INSTALLED_PRODUCT is
Yes, so those three choices of how to strip are heeded only when
you strip. So it's not a factor here. Your build settings are
correct.
OK, that's good to hear.
From the looks of it, your binary has the symbol information for
debugging—as you say, you trace it into the last member function in
your code, then it jumps Somewhere Else and goes four stack frames
deep and crashes, and you have no symbolics.
OK. Well... ElfDataFuzzy.collect comes from the host app which wasn't
even made in Xcode, not my library which WAS made in Xcode. I'm
debugging my library made in Xcode, of course...
For what it's worth, Xcode CAN debug this project when I build it as
a tool, instead of a library.
Perhaps the problem is something in the environment, or loading
setup? It's being loaded from REALbasic, perhaps REALbasic isn't
doing something correctly when it loads the .dylib and the symbols
don't work? It can run most of my functions correctly except this
ElfDataFuzzy.collect function, or at least the subfunctions called
from there.
I think now that you've ruled out my build settings as being the
problem, I can narrow it down to REALbasic itself.
Some ways to do this:
- If you are crashing in Xcode, then the debugger might show what
section or library you seem to be in, in the stack frame popup menu.
- Use the Debug > Tools > Shared Libraries window to see what
library includes that address.
- If you're in the gdb debugger console, type 'info frame
0x12cd4e0'. This will show you what library it's in. Xcode shows
this information in the stack display in the debugger.
Well, Apple's developer report window loads up.
OK I tried running this again... and for *some* reason... I'm getting
the full function names. I see :
0 libElfData.dylib_0.128.dylib 0x0101744c OPCrash + 52
(ObjectPlatform.cpp:35)
1 libElfData.dylib_0.128.dylib 0x0100b5db NavParentSibling_ + 139
(ED_DictCore.i:866)
2 libElfData.dylib_0.128.dylib 0x010184d0 MoveNext_1_ + 164
(Core_1_.i:442)
3 libElfData.dylib_0.128.dylib 0x01018602 DictFuzz_1__ + 102
(Core_1_.i:564)
4 libElfData.dylib_0.128.dylib 0x010193c5 ED_Fz_1_Collect + 393
(Core_1_.i:645)
5 0x000992d9 ElfDataFuzzy.Collect%%
o<ElfDataFuzzy>o<ElfData>i4i4 + 106
Seriously, I have NO Idea what changed. I thought I didn't change
anything, but obviously I must have.
All I can say is that this thing of getting "No Symbol" occurred at
least 4 times.
It would be nice to know what changed so if the "no symbol" thing
reoccurs I can fix it myself. I should be able to figure it out myself.
Thanks a lot Chris and all the others who helped me here. At the very
least I've learnt that my build settings are correct.
Once you determine where the stack frames are, then you can proceed
to figure out why they don't have symbols. Most Apple frameworks
do; some don't. You may be in a linked framework of your own that
was built stripped. You may (rarely) have jumped into corrupt code
space for which symbols are not present. Hard to tell without
knowing what exactly is at 0x12cd4e0.
--
http://elfdata.com/plugin/
"String processing, done right"
_______________________________________________
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