From owner-freebsd-alpha Mon Sep 9 22:33: 6 2002 Delivered-To: freebsd-alpha@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 901E237B400; Mon, 9 Sep 2002 22:33:02 -0700 (PDT) Received: from creme-brulee.marcuscom.com (rdu57-17-158.nc.rr.com [66.57.17.158]) by mx1.FreeBSD.org (Postfix) with ESMTP id C045B43E65; Mon, 9 Sep 2002 22:33:00 -0700 (PDT) (envelope-from marcus@marcuscom.com) Received: from gyros (gyros.marcuscom.com [192.168.1.9]) by creme-brulee.marcuscom.com (8.12.5/8.12.5) with ESMTP id g8A5UYix055851; Tue, 10 Sep 2002 01:30:34 -0400 (EDT) (envelope-from marcus@marcuscom.com) Subject: Re: getting closer (was Re: mozilla failure on 4.6.2) From: Joe Marcus Clarke To: Andrew Gallatin Cc: obrien@FreeBSD.ORG, alpha@FreeBSD.ORG 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> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 Date: 10 Sep 2002 01:32:33 -0400 Message-Id: <1031635953.342.133.camel@gyros.marcuscom.com> Mime-Version: 1.0 Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org 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