Skip site navigation (1)Skip section navigation (2)
Date:      10 Sep 2002 01:32:33 -0400
From:      Joe Marcus Clarke <marcus@marcuscom.com>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        obrien@FreeBSD.ORG, alpha@FreeBSD.ORG
Subject:   Re: getting closer (was Re: mozilla failure on 4.6.2)
Message-ID:  <1031635953.342.133.camel@gyros.marcuscom.com>
In-Reply-To: <15741.17468.701009.998323@grasshopper.cs.duke.edu>
References:  <20020906040641.GA61111@xor.obsecurity.org> <1031287598.361.2.camel@gyros.marcuscom.com> <15736.40749.986834.818558@grasshopper.cs.duke.edu> <1031329151.342.9.camel@gyros.marcuscom.com> <20020906194732.GA2244@dragon.nuxi.com> <15737.2550.488154.4401@grasshopper.cs.duke.edu> <20020907000825.GA4091@dragon.nuxi.com> <15739.43883.152090.936327@grasshopper.cs.duke.edu> <15741.2822.526047.253409@grasshopper.cs.duke.edu> <1031605410.351.90.camel@gyros.marcuscom.com>  <15741.17468.701009.998323@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2002-09-09 at 21:00, Andrew Gallatin wrote:
> 
> No beer yet.  It still segv's like this:
> 
> (gdb) where
> #0  0x1602a25c4 in PLDHashTableEnumeratorImpl::GetNext ()
>    from /home/gallatin/ports/www/mozilla-devel/work/mozilla/dist/bin/libxpcom.so
> #1  0x1602aaff8 in nsComponentManagerImpl::RegisterFactoryLocation ()
>    from /home/gallatin/ports/www/mozilla-devel/work/mozilla/dist/bin/libxpcom.so
> #2  0x1602e1d78 in XPTC_InvokeByIndex ()
>    from /home/gallatin/ports/www/mozilla-devel/work/mozilla/dist/bin/libxpcom.so
> warning: Hit heuristic-fence-post without finding
> warning: enclosing function for address 0x120151910
> 
> The interesting thing is the "mutliple inheritance test" seems to be
> failing, now that I look closely at it:
> 
> Calling Bar...
> direct calls:
>        FooBarImpl2::BarMethod1 called with i == 1, local value = 12345678
>        FooBarImpl2::BarMethod2 called with i == 2, local value = 12345678
> invoke calls:
>        FooBarImpl2::BarMethod1 called with i == 1, local value = 0
>        FooBarImpl2::BarMethod2 called with i == 2, local value = 0
> 
> 
> (gdb) break FooBarImpl2::BarMethod1
> Breakpoint 2 at 0x120002c50: file TestXPTCInvoke.cpp, line 977.
> (gdb) r
> Starting program: /home/gallatin/ports/www/mozilla-devel/work/mozilla/xpcom/reflect/xptcall/tests/./TestXPTCInvoke
> <...>
> 
> Breakpoint 2, FooBarImpl2::BarMethod1 (this=0x12001c080, i=1) at TestXPTCInvoke.cpp:977
> 977	              i, value);
> (gdb) 
> Continuing.
> 	FooBarImpl2::BarMethod1 called with i == 1, local value = 12345678
> 	FooBarImpl2::BarMethod2 called with i == 2, local value = 12345678
> invoke calls:
> 
> Breakpoint 2, FooBarImpl2::BarMethod1 (this=0x12001c088, i=1) at TestXPTCInvoke.cpp:977
> 977	              i, value);
> (gdb) 
> Continuing.
> 	FooBarImpl2::BarMethod1 called with i == 1, local value = 0
> 	FooBarImpl2::BarMethod2 called with i == 2, local value = 0
> 
> Notice how "this" has been incremented by 8 bytes?  I have no clue
> where that's coming from.  If I look at *(FooBarImpl2 *)0x12001c080,
> it looks correct. 
> 
> Help is welcome..

I don't have an Alpha or know much about Alpha assembly, but could the 8
bytes be coming from:

"addq $30,8,$16\n\t"    /* pass stack pointer */

If I read things right, they're adding 8 to the "this" address, and
storing it in register $16.  Then, they load "this" from $16.  Like I
said, I don't know if this is correct, and I currently have no way of
testing it.  But:

stq $16,0($30)

(store "this" [stack pointer offset 0 bytes])

...

addq $30,8,$16

Add 8 to the stack pointer ("this", right), and store it in $16.

Joe   

> 
> Drew
> 
> 
-- 
PGP Key : http://www.marcuscom.com/pgp.asc


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1031635953.342.133.camel>