------- Comment #3 from steve at telxio dot com 2005-11-03 21:09 -------
=========================
Backtace from gdb:
=========================
R500.ramses.185> g++ -g tt.cc
R500.ramses.186> gdb a.out
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.10"...
(gdb) r
Starting program: /telos/src_dev/a.out
Program received signal SIGSEGV, Segmentation fault.
0xff312650 in std::ostream::sentry::sentry ()
from /opt/utsi/test/R500/opt/utsi/lib/libstdc++.so.6
(gdb) bt
#0 0xff312650 in std::ostream::sentry::sentry ()
from /opt/utsi/test/R500/opt/utsi/lib/libstdc++.so.6
#1 0xff3127b0 in std::operator<< <std::char_traits<char> > ()
from /opt/utsi/test/R500/opt/utsi/lib/libstdc++.so.6
#2 0x00010cc8 in main (argc=1, argv=0xffbffab4) at tt.cc:11
(gdb) l
11 cout << "Hello World" << endl;
12 return 0;
13 }
(gdb)
===============================
Assember at point of failure
===============================
0xff312640 <_ZNSo6sentryC1ERSo+0>: save %sp, -112, %sp
0xff312644 <_ZNSo6sentryC1ERSo+4>: clrb [ %i0 ]
0xff312648 <_ZNSo6sentryC1ERSo+8>: st %i1, [ %i0 + 4 ]
0xff31264c <_ZNSo6sentryC1ERSo+12>: ld [ %i1 ], %o5
0xff312650 <_ZNSo6sentryC1ERSo+16>: ld [ %o5 + -12 ], %g1
0xff312654 <_ZNSo6sentryC1ERSo+20>: add %i1, %g1, %g1
0xff312658 <_ZNSo6sentryC1ERSo+24>: ld [ %g1 + 0x70 ], %o0
0xff31265c <_ZNSo6sentryC1ERSo+28>: cmp %o0, 0
0xff312660 <_ZNSo6sentryC1ERSo+32>: be,pn %icc, 0xff312678
<_ZNSo6sentryC1ERSo+56>
0xff312664 <_ZNSo6sentryC1ERSo+36>: mov %i0, %l0
0xff312668 <_ZNSo6sentryC1ERSo+40>: ld [ %g1 + 0x14 ], %g1
0xff31266c <_ZNSo6sentryC1ERSo+44>: cmp %g1, 0
0xff312670 <_ZNSo6sentryC1ERSo+48>: be,pn %icc, 0xff31269c
<_ZNSo6sentryC1ERSo+92>
0xff312674 <_ZNSo6sentryC1ERSo+52>: nop
0xff312678 <_ZNSo6sentryC1ERSo+56>: ld [ %o5 + -12 ], %g1
0xff31267c <_ZNSo6sentryC1ERSo+60>: add %i1, %g1, %g1
0xff312680 <_ZNSo6sentryC1ERSo+64>: ld [ %g1 + 0x14 ], %o5
0xff312684 <_ZNSo6sentryC1ERSo+68>: mov %g1, %i0
0xff312688 <_ZNSo6sentryC1ERSo+72>: cmp %o5, 0
0xff31268c <_ZNSo6sentryC1ERSo+76>: be %icc, 0xff3126ac
<_ZNSo6sentryC1ERSo+108>
0xff312690 <_ZNSo6sentryC1ERSo+80>: or %o5, 4, %i1
0xff312694 <_ZNSo6sentryC1ERSo+84>: call 0xff3579a4
<_PROCEDURE_LINKAGE_TABLE_+384>
---Type <return> to continue, or q <return> to quit---
0xff312698 <_ZNSo6sentryC1ERSo+88>: restore
0xff31269c <_ZNSo6sentryC1ERSo+92>: call 0xff357d7c
<_PROCEDURE_LINKAGE_TABLE_+1368>
0xff3126a0 <_ZNSo6sentryC1ERSo+96>: nop
0xff3126a4 <_ZNSo6sentryC1ERSo+100>: b %xcc, 0xff312678
<_ZNSo6sentryC1ERSo+56>
0xff3126a8 <_ZNSo6sentryC1ERSo+104>: ld [ %i1 ], %o5
0xff3126ac <_ZNSo6sentryC1ERSo+108>: mov 1, %g1
0xff3126b0 <_ZNSo6sentryC1ERSo+112>: stb %g1, [ %l0 ]
0xff3126b4 <_ZNSo6sentryC1ERSo+116>: rett %i7 + 8
End of assembler dump.
(gdb)
==========================
Output of truss:
==========================
R500.ramses.182> LD_LIBRARY_PATH=/opt/utsi/test/R500/opt/utsi/lib truss ./a.o>
execve("a.out", 0xFFBFFB14, 0xFFBFFB1C) argc = 1
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
getcwd("/telos/src_dev", 1017) = 0
resolvepath("/telos/src_dev/a.out", "/telos/src_dev/a.out", 1023) = 20
stat("/telos/src_dev/a.out", 0xFFBFF8F0) = 0
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
stat("/opt/utsi/test/R500/opt/utsi/lib/libstdc++.so.6", 0xFFBFF410) = 0
resolvepath("/opt/utsi/test/R500/opt/utsi/lib/libstdc++.so.6",
"/opt/utsi/test/R500/opt/utsi/lib/libstdc++.so.6.0.3", 1023) = 51
open("/opt/utsi/test/R500/opt/utsi/lib/libstdc++.so.6", O_RDONLY) = 3
mmap(0x00010000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF3A0000
mmap(0x00010000, 1024000, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF280000
mmap(0xFF280000, 814550, PROT_READ|PROT_EXEC, MAP_PRIVATE|0x410, 3, 0) =
0xFF280000
mmap(0xFF356000, 124352, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|0x810, 3,
811008) = 0xFF356000
mmap(0xFF376000, 15992, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFF376000
munmap(0xFF348000, 57344) = 0
memcntl(0xFF280000, 316652, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
stat("/opt/utsi/test/R500/opt/utsi/lib/libm.so.2", 0xFFBFF410) Err#2 ENOENT
stat("/lib/libm.so.2", 0xFFBFF410) = 0
resolvepath("/lib/libm.so.2", "/lib/libm.so.2", 1023) = 14
open("/lib/libm.so.2", O_RDONLY) = 3
mmap(0xFF3A0000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0xFF3A0000
mmap(0x00010000, 786432, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF180000
mmap(0xFF180000, 693647, PROT_READ|PROT_EXEC, MAP_PRIVATE|0x410, 3, 0) =
0xFF180000
mmap(0xFF238000, 28592, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|0x810, 3,
688128) = 0xFF238000
munmap(0xFF22A000, 57344) = 0
memcntl(0xFF180000, 33076, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
stat("/opt/utsi/test/R500/opt/utsi/lib/libgcc_s.so.1", 0xFFBFF410) = 0
resolvepath("/opt/utsi/test/R500/opt/utsi/lib/libgcc_s.so.1",
"/opt/utsi/test/R500/opt/utsi/lib/libgcc_s.so.1", 1023) = 46
open("/opt/utsi/test/R500/opt/utsi/lib/libgcc_s.so.1", O_RDONLY) = 3
mmap(0xFF3A0000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0xFF3A0000
mmap(0x00010000, 106496, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF260000
mmap(0xFF260000, 35664, PROT_READ|PROT_EXEC, MAP_PRIVATE|0x410, 3, 0) =
0xFF260000
mmap(0xFF278000, 4972, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|0x810, 3,
32768) = 0xFF278000
munmap(0xFF26A000, 57344) = 0
memcntl(0xFF260000, 6232, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
stat("/opt/utsi/test/R500/opt/utsi/lib/libc.so.1", 0xFFBFF410) Err#2 ENOENT
stat("/lib/libc.so.1", 0xFFBFF410) = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY) = 3
mmap(0xFF3A0000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0xFF3A0000
mmap(0x00010000, 991232, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF080000
mmap(0xFF080000, 881573, PROT_READ|PROT_EXEC, MAP_PRIVATE|0x410, 3, 0) =
0xFF080000
mmap(0xFF168000, 29469, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|0x810, 3,
884736) = 0xFF168000
mmap(0xFF170000, 2592, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFF170000
munmap(0xFF158000, 65536) = 0
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON,
-1, 0) = 0xFF390000
memcntl(0xFF080000, 139692, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
stat("/opt/utsi/test/R500/opt/utsi/lib/libm.so.2", 0xFFBFF410) Err#2 ENOENT
stat("/opt/utsi/test/R500/opt/utsi/lib/libc.so.1", 0xFFBFF410) Err#2 ENOENT
stat("/opt/utsi/test/R500/opt/utsi/lib/libc.so.1", 0xFFBFF410) Err#2 ENOENT
stat("/opt/utsi/test/R500/opt/utsi/lib/libc.so.1", 0xFFBFF410) Err#2 ENOENT
munmap(0xFF3A0000, 8192) = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF3A0000
getcontext(0xFFBFF5E8)
getrlimit(RLIMIT_STACK, 0xFFBFF5C8) = 0
getpid() = 17060 [17059]
setustack(0xFF3A2088)
sysconfig(_CONFIG_STACK_PROT) = 7
Incurred fault #6, FLTBOUNDS %pc = 0xFF312650
siginfo: SIGSEGV SEGV_MAPERR addr=0xFFFFFFF4
Received signal #11, SIGSEGV [default]
siginfo: SIGSEGV SEGV_MAPERR addr=0xFFFFFFF4
R500.ramses.183>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24649