This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Heads up: Several thousand g++ and libstdc++ test failures onsparc[64]
- From: Andreas Tobler <toa at pop dot agri dot ch>
- To: Pétur Runólfsson <peturr02 at ru dot is>
- Cc: Benjamin Kosnik <bkoz at redhat dot com>, libstdc++ at gcc dot gnu dot org
- Date: Mon, 06 Oct 2003 21:18:16 +0200
- Subject: Re: Heads up: Several thousand g++ and libstdc++ test failures onsparc[64]
- References: <07D05A69A3D0C14FAEA60C3ACE8E5564028F55E1@mail.ru.is>
Pétur Runólfsson wrote:
It's a bit more complicated, especially if you don't know what you're
looking for :)
locale::_S_initialize is probably a good place to begin. Is __GTHREADS
defined? Does __gthread_once get called? What does it return? Is
gthr-single.h, gthr-posix.h or gthr-solaris.h used? Does
_S_initialize_once get called? Does it initialize _S_classic?
- GTHREADS is defined.
- gthr-posix.h is used.
The other points I have to try, it is difficult since it gets a SEGV.
Starting program:
/opt/gcc/gcc-cvs/objdir/sparc-sun-solaris2.9/libstdc++-v3/header_cassert.exe
Program received signal SIGSEGV, Segmentation fault.
0xff2cc4c0 in ?? () from /usr/local/lib/libstdc++.so.6
(gdb) bt
#0 0xff2cc4c0 in ?? () from /usr/local/lib/libstdc++.so.6
#1 0xff2e36ec in ?? () from /usr/local/lib/libstdc++.so.6
#2 0xff2e171c in ?? () from /usr/local/lib/libstdc++.so.6
#3 0xff2cc3e8 in ?? () from /usr/local/lib/libstdc++.so.6
#4 0xff2cb684 in ?? () from /usr/local/lib/libstdc++.so.6
#5 0xff3ccc28 in ?? ()
#6 0xff3cc3a4 in ?? ()
#7 0xff3d7fe8 in ?? ()
#8 0xff3c2be8 in ?? ()
(gdb)
I can't set any good breakpoint:
(gdb) b locale.cc:379
Breakpoint 1 at 0x6aaa8: file
../../../../gcc/libstdc++-v3/src/locale.cc, line 379.
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program:
/opt/gcc/gcc-cvs/objdir/sparc-sun-solaris2.9/libstdc++-v3/header_cassert.exe
Warning:
Cannot insert breakpoint 1.
Error accessing memory address 0x6aaa8: I/O error.
The same program may be running in another process.
(gdb)
Benjamin sent me some stuff to try regarding debugging. I try.
Hope to get something, but I'm not sure since it seems not that easy :)
Andreas
P.S, this is the disass output from where it breaks. For the moment I
don't see anything (means I don't understand)
Program received signal SIGSEGV, Segmentation fault.
0xff2cc4c0 in ?? () from /usr/local/lib/libstdc++.so.6
(gdb) disass 0xff2cc4c0 0xff2cc4c0 +50
Dump of assembler code from 0xff2cc4c0 to 0xff2cc4f2:
0xff2cc4c0: ld [ %i0 ], %g1
0xff2cc4c4: add %g1, %i1, %g1
0xff2cc4c8: st %g1, [ %i0 ]
0xff2cc4cc: clrb [ %i5 ]
0xff2cc4d0: ret
0xff2cc4d4: restore
0xff2cc4d8: save %sp, -112, %sp
0xff2cc4dc: sethi %hi(0x400), %g1
0xff2cc4e0: sethi %hi(0x74400), %l7 <--- see below
0xff2cc4e4: call 0xff2cb858
0xff2cc4e8:
add %l7, 0x19c, %l7 ! 0x7459c
<_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_+365>
0xff2cc4ec: or %g1, 0x10c, %g1
0xff2cc4f0: ld [ %l7 + %g1 ], %i5
End of assembler dump.
(gdb)
this is the section frm libstdc++.so.6 with dis (objdump on solaris)
74400: 92 10 3f ff mov -0x1, %o1
74404: 80 a2 20 00 cmp %o0, 0x0
74408: 14 80 00 04 bg 0x74418
7440c: 90 10 00 10 mov %l0, %o0
74410: 40 01 34 70 call 0xc15d0
74414: 92 10 00 13 mov %l3, %o1
74418: 81 c7 e0 0c jmp %i7 + 0xc
7441c: 91 e8 00 11 restore %g0, %l1, %o0
section .gnu.linkonce.t._ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_
_ZNKSt7collateIwE10do_compareEPKwS2_S2_S2_()