On Mon, 16 Jul 2012, Philip Guenther wrote:
> On Mon, 16 Jul 2012, Donovan Watteau wrote:
> > >Description:
> > All threaded programs end up segfaulting on my B&W G3 (Rev 1).
> > This makes most ports unusable, since a lot of ports use threads
> > (or a library that links to them), i.e: they almost always crash
> > at start-up.
> >
> > This looks specific to the G3 processor, as I'm surprised it
> > hasn't been reported yet.
> >
> > Please see the output of base gdb [1] and gdb-7.4.1 from
> > ports [2]. They come from the core-dump of the following
> > "thread_eight" program.
> > >How-To-Repeat:
> > Here's how I tried to get some information from gdb:
> > * Compile a threaded program (here, thread_eight.c [3])
> > * Start compiling a port. If the machine is completely idle, the
> > segfault is much harder to catch.
> > * Repeatedly launch the binary. It should eventually crash and
> > produce a core-dump.
> > * Then, launch gdb (or egdb) on it to get some information.
> ...
> > #0 0x9129ef30 in pthread_self () at tcb.h:60
> > 60 __asm__ ("lwzx %0, %%r2, %1" : "=r" (val) : "r" (offset));
>
> Can you show the output of "info regs" for that thread?
Here you go:
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 "powerpc-unknown-openbsd5.2"...
Core was generated by `thread_eight'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libpthread.so.16.0...done.
Loaded symbols for /usr/lib/libpthread.so.16.0
Reading symbols from /usr/lib/libc.so.65.0...done.
Loaded symbols for /usr/lib/libc.so.65.0
Reading symbols from /usr/libexec/ld.so...done.
Loaded symbols for /usr/libexec/ld.so
#0 0x9129ef30 in pthread_self () at tcb.h:60
60 __asm__ ("lwzx %0, %%r2, %1" : "=r" (val) : "r" (offset));
(gdb) info regs
Undefined info command: "regs". Try "help info".
(gdb) info reg
r0 0x4 4
r1 0x8e8a0ea0 2391412384
r2 0x9032 36914
r3 0x1860de8 25562600
r4 0x1810ba4 25234340
r5 0x8e8a0f94 2391412628
r6 0x86ca4100 2261401856
r7 0x800 2048
r8 0x2b 43
r9 0x912e22f8 2435719928
r10 0x891e5fd2 2300469202
r11 0x9129e3f0 2435441648
r12 0x24000024 603979812
r13 0x0 0
r14 0x0 0
r15 0x0 0
r16 0x0 0
r17 0x8f040000 2399404032
r18 0x30634 198196
r19 0xffff6060 4294926432
r20 0x1 1
r21 0xffff6094 4294926484
r22 0x0 0
r23 0x15 21
r24 0xffff609c 4294926492
r25 0xffff6004 4294926340
r26 0x5e 94
r27 0x912c2064 2435588196
r28 0x1860de8 25562600
r29 0x1810ba4 25234340
r30 0x912d2168 2435653992
r31 0x8e8a0f94 2391412628
pc 0x9129ef30 2435444528
ps 0xd032 53298
cr 0x24000024 603979812
lr 0x912d2168 2435653992
ctr 0x9129e3f0 2435441648
xer 0x24000024 603979812
fpscr 0x0 0
vscr 0x0 0
vrsave 0x0 0
(gdb)