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>
