[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