Heads up: Several thousand g++ and libstdc++ test failures on sparc[64]

Andreas Tobler toa@pop.agri.ch
Mon Oct 6 19:18:00 GMT 2003


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_()





More information about the Libstdc++ mailing list