[Gc] Re: Problem with libgc under Solaris 10 x86 (fwd)

Apostolos Syropoulos apostolo at ocean1.ee.duth.gr
Fri Mar 11 12:21:24 PST 2005


On Fri, 11 Mar 2005, Boehm, Hans wrote:

> That SIGSEGV is expected, and should be caught.  Tell your
> debugger to continue past the SIGSEGV.
>
> I would run without a debugger first.  If that dies with a SIGSEGV,
> you should be able to get a stack trace from the core file.  At that
> point, you know what you're looking for with the debugger.

Here is the output:

GNU DDD 3.3.8 (i386-pc-solaris2.10), by Dorothea Lόtkehaus and Andreas 
Zeller.
Copyright © 1995-1999 Technische Universitδt Braunschweig, Germany.
Copyright © 1999-2001 Universitδt Passau, Germany.
Copyright © 2001 Universitδt des Saarlandes, Germany.
Copyright © 2003 Free Software Fundation, Inc.
(gdb) run
warning: no shared library support for this OS / ABI
[New LWP 1]
[New LWP 2]

Program received signal SIGSEGV, Segmentation fault.
0x08060ab6 in GC_SysVGetDataStart (max_page_size=0, etext_addr=0x806749c) 
at os_dep.c:1373
(gdb) next

Program received signal SIGSEGV, Segmentation fault.
0x08060a27 in GC_find_limit (p=0x80908e0 "\001\020\001", up=0) at 
os_dep.c:811
(gdb) next
[New LWP 3]
[New LWP 4]
Apparently failed to mark form some function arguments.
Perhaps GC_push_regs was configured incorrectly?
Test failed

Program received signal SIGABRT, Aborted.
0xd279e875 in ?? ()

> Initial debugging also tends to be easier if you comment out the
> GC_enable_incremental() call in the test.  Under Solaris, that
> might not make a huge difference, though.

Indeed. Here is the debugger's output:

apostolo at ocean1>> ./test
Apparently failed to mark form some function arguments.
Perhaps GC_push_regs was configured incorrectly?
Test failed
Abort (core dumped)
apostolo at ocean1>> adb test core
core file = core -- program ``test'' on platform i86pc
SIGABRT: Abort
$C
08046f04 libc.so.1`_lwp_kill+0x15(1, 6)
08046f1c libc.so.1`raise+0x1f(6)
08046f68 libc.so.1`abort+0xcd(8065504, 0, 8047138, 8057d1c, 80669e7, 0)
08046f78 GC_err_puts(80669e7, 0, 0, 80b3fc0, 80b3fc0, 80b3fd0)
08047138 uniq+0x94(80b3fc0, 80b3fd0, 80b3fe0, 80b3ff0, 80b3fb0, 80b3fc0)
080471a8 run_one_test+0x406(80471d0, d27de044, d27a0315, d2720841, 29, 4)
080471d8 main+0x89(1, 8047210, 8047218)
08047204 _start+0x5d(1, 8047358, 0, 804735f, 80473c5, 80473da)
$Q

>From the above I deduce that the problem is light-weight processes (a.k.a. 
solaris threads). Any comments anr/or suggestions?

A.S.

****************************************************************
*Apostolos Syropoulos                                          *
*snail mail: 366, 28th October Str., GR-671 00  Xanthi, HELLAS *
*email     : apostolo at ocean1.ee.duth.gr                        *
*phone num.: +30-2541028704                                    *
*home page : http://obelix.ee.duth.gr/~apostolo                *
****************************************************************


More information about the Gc mailing list