Re: gdb: Symbolized Crash Report: One line spans multiple functions?
Re: gdb: Symbolized Crash Report: One line spans multiple functions?
- Subject: Re: gdb: Symbolized Crash Report: One line spans multiple functions?
- From: Jerry Krinock <email@hidden>
- Date: Mon, 28 Dec 2009 19:41:44 -0800
On 2009 Dec 28, at 19:08, Jason Molenda wrote:
> It might be tricky to skate by with knowledge of the 8088 instruction set but hey, it never hurts to try. :)
Yeah ... that's what it was ... 8088!
> Do it more directly:
>
> (gdb) x/10i 0xeb12d
Great! The result is that it looks as you and Ken suspected. Methods are abutting...
0xeb12d <-[ExtoreG(Loginner) logInWithInfo:]+884>: add $0x4c,%esp
0xeb130 <-[ExtoreG(Loginner) logInWithInfo:]+887>: pop ëx
0xeb131 <-[ExtoreG(Loginner) logInWithInfo:]+888>: pop %esi
0xeb132 <-[ExtoreG(Loginner) logInWithInfo:]+889>: pop íi
0xeb133 <-[ExtoreG(Loginner) logInWithInfo:]+890>: leave
0xeb134 <-[ExtoreG(Loginner) logInWithInfo:]+891>: ret
0xeb135 <-[ExtoreG(Loginner) errorLoggingIn]>: push ëp
0xeb136 <-[ExtoreG(Loginner) errorLoggingIn]+1>: mov %esp,ëp
0xeb138 <-[ExtoreG(Loginner) errorLoggingIn]+3>: push %esi
0xeb139 <-[ExtoreG(Loginner) errorLoggingIn]+4>: push ëx
Now, here's that line in the call stack again:
2 com.myCompany.Bkmxwork 0x000f112d 0x6000 + 962861
And, subtracting out the slide, we crashed at 0x000f112d - 0x6000 = 0xeb12d, which is 5 instructions *before* the end of loginWithInfo, which makes more sense.
Comparing this with 'info line' output:
Line 97 of "/Users/jk/Documents/Programming/Projects/Project1/ExtoreG+Loginner.m" starts at address 0xeb12d <-[ExtoreG(Loginner) logInWithInfo:]+884> and ends at 0xeb135 <-[ExtoreG(Loginner) errorLoggingIn]>.
I would say that's close, but not quite true.
So the lesson is maybe to not trust gdb's 'info line' when it gives you a line number that is the ending curly bracket of a function. Interpret as "somewhere near the end of that function". As I said originally, I've seen this situation before. Here's the code in this case:
87: [[self bkmslf] runModalSheetAlert:alert_
88: iconStyle:SSYAlertIconInformational
89: modalDelegate:self
90: didEndSelector:@selector(didEndAskLogoutSheet:returnCode:info:)
91: contextInfo:[info retain]] ;
92: }
93: }
94: else {
95: [self logOutThenInWithInfo:info] ;
96: }
97:}
Now there's still some ambiguity when I look at line 1 in the call stack. But we're getting somewhere. I'll reply again after I study this some more.
_______________________________________________
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