[Gc] Core dump in Solaris

Boehm, Hans hans.boehm at hp.com
Fri Apr 23 10:20:13 PDT 2004


Speaking of Solaris threads, is anyone still using old-style thr_ Solaris threads?  I would like
to remove the Solaris-specific code in the next major (7.0?) release, and move to a single source file
for pthreads support.  The original reasons for not doing this became invalid a long time ago.
The change would involve a minor performance hit in some cases, but make parallel collection
feasible on Solaris (as it is now on Linux, etc.)  And it would remove the necessity of maintaining
a substantial piece of code.

Now back to the question at hand:

My guess is that you are allocating from a thread the GC doesn't know about, e.g. because the
thread was created from a file that didn't include gc.h, and hence pthread_create was not
intercepted.

Presumably the variable "me" is 0 at this point?

Hans

-----Original Message-----
From: gc-bounces at napali.hpl.hp.com [mailto:gc-bounces at napali.hpl.hp.com]On Behalf Of Simon Johansson
Sent: Friday, April 23, 2004 1:16 AM
To: gc at napali.hpl.hp.com
Subject: [Gc] Core dump in Solaris


Hi.
 
I get this core dump every time a run the program for a while.
 
---Type <return> to continue, or q <return> to quit---
#0  0xff1d4534 in GC_my_stack_limits () at solaris_threads.c:664
664         register size_t stack_size = me -> stack_size;
(gdb) where
#0  0xff1d4534 in GC_my_stack_limits () at solaris_threads.c:664
#1  0xff1d4150 in GC_old_stacks_are_fresh () at solaris_threads.c:553
#2  0xff1cf54c in GC_read_dirty () at os_dep.c:3205
#3  0xff1c7050 in GC_initiate_gc () at mark.c:237
#4  0xff1bb8e8 in GC_stopped_mark (stop_func=0xff1ba7f0 <GC_never_stop_func>) at alloc.c:505
#5  0xff1bb320 in GC_try_to_collect_inner (stop_func=0xff1ba7f0 <GC_never_stop_func>) at alloc.c:367
#6  0xff1bcd8c in GC_collect_or_expand (needed_blocks=6, ignore_off_page=0) at alloc.c:996
#7  0xff1c45a0 in GC_alloc_large (lw=5555, k=0, flags=0) at malloc.c:60
#8  0xff1c4c5c in GC_generic_malloc (lb=22216, k=0) at malloc.c:204
#9  0xff1c4f4c in GC_malloc_atomic (lb=22216) at malloc.c:270
#10 0xaf270 in Send ()
#11 0x6c200 in ResendTrans ()
#12 0x6d1b4 in Main_CS_Thread ()
(gdb)
 
This is on a Sun Solaris 8 and using GCC 3.3.2 and GC 6.3Alpha4 and also GC6.3Alpha5.
 
What is wrong? The stack seems to end or something like that.
 
/Simon   


More information about the Gc mailing list