On Tue, May 13, 2008 at 02:46:45PM +0200, Frank Lichtenheld <[EMAIL PROTECTED]> 
wrote:
> On Tue, May 13, 2008 at 07:41:22AM +0200, Mike Hommey wrote:
> > On Tue, May 13, 2008 at 12:54:51AM +0200, Frank Lichtenheld wrote:
> > > [EMAIL PROTECTED]:/usr/lib/xulrunner-1.9# gdb ./regxpcom 
> > > GNU gdb 6.7.1-debian
> > > Copyright (C) 2007 Free Software Foundation, Inc.
> > > License GPLv3+: GNU GPL version 3 or later 
> > > <http://gnu.org/licenses/gpl.html>
> > > This is free software: you are free to change and redistribute it.
> > > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> > > and "show warranty" for details.
> > > This GDB was configured as "hppa-linux-gnu"...
> > > Using host libthread_db library "/lib/libthread_db.so.1".
> > > (gdb) run
> > > Starting program: /usr/lib/xulrunner-1.9/regxpcom 
> > > [Thread debugging using libthread_db enabled]
> > > [New Thread 0x4000 (LWP 1767)]
> > > 
> > > Program received signal SIGSEGV, Segmentation fault.
> > > [Switching to Thread 0x4000 (LWP 1767)]
> > > xptiInterfaceEntry::EnsureResolved (this=0x0, aWorkingSet=0x0) at 
> > > xptiprivate.h:590
> > > 590       xptiprivate.h: No such file or directory.
> > >   in xptiprivate.h
> > > (gdb) bt
> > > #0  xptiInterfaceEntry::EnsureResolved (this=0x0, aWorkingSet=0x0) at 
> > > xptiprivate.h:590
> > > #1  0x4232c260 in xptiInterfaceEntry::GetMethodInfo (this=0x0, index=5, 
> > > info=0xfafe3088) at xptiInterfaceInfo.cpp:317
> > > #2  0x4232aaf8 in PrepareAndDispatch (self=0xfafe2d5c, methodIndex=<value 
> > > optimized out>, args=0xfafe2f98, floatargs=0xfafe3030) at 
> > > xptcstubs_pa32.cpp:71
> > 
> > Could you go up to this frame and display the value for self ?
> 
> Like this?
> 
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x4000 (LWP 3623)]
> xptiInterfaceEntry::EnsureResolved (this=0x0, aWorkingSet=0x0) at 
> xptiprivate.h:590
> 590   xptiprivate.h: No such file or directory.
>       in xptiprivate.h
> (gdb) up 2
> #2  0x429d7af8 in PrepareAndDispatch (self=0xfaf12d5c, methodIndex=<value 
> optimized out>, args=0xfaf12f98, floatargs=0xfaf13030) at 
> xptcstubs_pa32.cpp:71
> 71    xptcstubs_pa32.cpp: No such file or directory.
>       in xptcstubs_pa32.cpp
> (gdb) p self
> $1 = (class nsXPTCStubBase *) 0xfaf12d5c
> (gdb) p *self
> $2 = {<nsIXPTCStubBase> = {<nsISupports> = {_vptr.nsISupports = 0x0}, <No 
> data fields>}, mOuter = 0x42b74b54, mEntry = 0x0}
> (gdb) 

It really looks like this pointer is totally wrong. If the same code built
with gcc 4.2 works, my guess would be that the nsXPTCStubBase::Stubn stack
is not 64 bytes anymore with gcc 4.3, as assumed by the assembly code...

Mike



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to