[M3devel] OpenBSD/x86 pthreads
Tony Hosking
hosking at cs.purdue.edu
Fri Nov 20 21:47:29 CET 2009
This says we are getting completely bogus stack information from
pthread_stackseg_np so the threads are not getting scanned properly by
the collector. Let me look at your stack dump from earlier to decode.
On 20 Nov 2009, at 15:22, Jay K wrote:
> I tried:
>
> void
> ThreadPThread__ProcessStopped (m3_pthread_t mt, char *start, char
> *end,
> void (*p)(void *start, void *end))
> {
> stack_t sinfo;
> char* ss_sp;
> if (pthread_stackseg_np(PTHREAD_FROM_M3(mt), &sinfo) != 0) abort();
> ss_sp = (char*)sinfo.ss_sp;
> assert(start == 0);
> assert((ss_sp - sinfo.ss_size) < end); /* man page says
> ss_sp is "top" */
> assert(end < ss_sp);
> /* we don't have a reliable sp, so... */
> p((ss_sp - sinfo.ss_size), end);
> }
>
>
> the C assertions don't trigger, but always:
>
>
>
> Starting program: /home/jay/cm3/bin/Juno
>
> ***
> *** runtime error:
> *** <*ASSERT*> failed.
> *** file "../src/runtime/common/RTCollector.m3", line 589
> ***
>
> Program received signal SIGABRT, Aborted.
> [Switching to process 6216, thread 0x7d6f5800]
> 0x0a58df81 in kill () from /usr/lib/libc.so.50.1
> (gdb) bt
> #0 0x0a58df81 in kill () from /usr/lib/libc.so.50.1
> #1 0x0a5da907 in abort () at /usr/src/lib/libc/stdlib/abort.c:68
> #2 0x01095cb2 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20
> #3 0x0108b77f in RTProcess__Crash (M3_Bd56fi_msg=0x0)
> at ../src/runtime/common/RTProcess.m3:65
> #4 0x010892da in RTError__EndError (M3_AicXUJ_crash=1 '\001')
> at ../src/runtime/common/RTError.m3:118
> #5 0x01088f9e in RTError__MsgS (M3_AJWxb1_file=0x210568c5,
> M3_AcxOUs_line=589, M3_Bd56fi_msgA=0x21058368,
> M3_Bd56fi_msgB=0x210526d0,
> M3_Bd56fi_msgC=0x21058368) at ../src/runtime/common/RTError.m3:40
> #6 0x01089742 in RTException__Crash (M3_Cblw37_a=0xcfbd9658,
> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0x21052580)
> at ../src/runtime/common/RTException.m3:79
> #7 0x01089469 in RTException__DefaultBackstop
> (M3_Cblw37_a=0xcfbd9658,
> M3_AicXUJ_raises=0 '\0') at ../src/runtime/common/
> RTException.m3:39
> #8 0x010893a5 in RTException__InvokeBackstop (M3_Cblw37_a=0xcfbd9658,
> M3_AicXUJ_raises=0 '\0') at ../src/runtime/common/
> RTException.m3:25
> #9 0x010966bc in RTException__Raise (M3_Cblw37_act=0xcfbd9658)
> at ../src/runtime/ex_frame/RTExFrame.m3:29
> #10 0x01089502 in RTException__DefaultBackstop
> (M3_Cblw37_a=0xcfbd9658,
> M3_AicXUJ_raises=0 '\0') at ../src/runtime/common/
> RTException.m3:47
> #11 0x010893a5 in RTException__InvokeBackstop (M3_Cblw37_a=0xcfbd9658,
> M3_AicXUJ_raises=0 '\0') at ../src/runtime/common/
> RTException.m3:25
> #12 0x010966bc in RTException__Raise (M3_Cblw37_act=0xcfbd9658)
> ---Type <return> to continue, or q <return> to quit---
> at ../src/runtime/ex_frame/RTExFrame.m3:29
> #13 0x010742f6 in RTHooks__ReportFault (M3_AJWxb1_module=0x21056a40,
> M3_AcxOUs_info=18848) at ../src/runtime/common/RTHooks.m3:110
> #14 0x01086bb9 in _m3_fault (M3_AcxOUs_arg=18848) from /cm3/lib/
> libm3core.so.5
> #15 0x0107dc9b in RTCollector__GrayBetween (M3_Edk2y1_h=0x7c7e5978,
> M3_Edk2y1_he=0x7c7e6000, M3_AZrJv4_r=6 '\006')
> at ../src/runtime/common/RTCollector.m3:589
> #16 0x0107dbfc in RTCollector__PromotePage (M3_Cq39JE_page=0x7c7e4000,
> M3_AZrJv4_r=6 '\006') at ../src/runtime/common/RTCollector.m3:578
> #17 0x0107d7bb in RTCollector__NoteStackLocations (
> M3_AJWxb1_start=0x89922000, M3_AJWxb1_stop=0x89935fac)
> at ../src/runtime/common/RTCollector.m3:528
> #18 0x0109cfc0 in ThreadPThread__ProcessStopped (mt=0x7d6f5000,
> start=0x0,
> end=0x89935fb0 "", p=0x107d72c <RTCollector__NoteStackLocations>)
> at ../src/thread/PTHREAD/ThreadPThreadC.c:185
> #19 0x0109b8a3 in ThreadPThread__ProcessOther
> (M3_DKqeuR_act=0x7d9cc380,
> M3_Ad3xEV_p=0x107d72c) at ../src/thread/PTHREAD/
> ThreadPThread.m3:1018
> #20 0x0109b196 in ThreadInternal__ProcessStacks
> (M3_Ad3xEV_p=0x107d72c)
> at ../src/thread/PTHREAD/ThreadPThread.m3:861
> #21 0x0107e9a4 in RTCollector__CollectSomeInStateZero ()
> at ../src/runtime/common/RTCollector.m3:819
> #22 0x0107e412 in RTCollector__CollectSome ()
> at ../src/runtime/common/RTCollector.m3:719
> #23 0x0107dec5 in RTHeapRep__CollectEnough ()
> ---Type <return> to continue, or q <return> to quit---
> at ../src/runtime/common/RTCollector.m3:653
> #24 0x01075fc1 in RTAllocator__AllocTraced (M3_Cwb5VA_dataSize=12,
> M3_Cwb5VA_dataAlignment=4, M3_AmBNir_thread=0x7d9cc544)
> at ../src/runtime/common/RTAllocator.m3:365
> #25 0x01074f70 in RTAllocator__GetTracedRef (M3_Eic7CK_def=0x23453ca0)
> at ../src/runtime/common/RTAllocator.m3:202
> #26 0x01074b8a in RTHooks__AllocateTracedRef
> (M3_AJWxb1_defn=0x23453ca0)
> at ../src/runtime/common/RTAllocator.m3:113
> #27 0x034c8196 in IntIntTbl__Put (M3_DTcOE5_tbl=0x7c7ea3f8,
> M3_EN2A1V_key=0xcfbd9a3c, M3_EN2A1V_val=0xcfbd9a88)
> at ../I386_OPENBSD/IntIntTbl.m3 => ../src/table/Table.mg:127
> #28 0x08761656 in KeyFilter__Set (M3_Bkn9rd_a=45 '-',
> M3_Bkn9rd_b=111 'o',
> M3_AcxOUs_c=245, M3_AicXUJ_bothCases=0 '\0',
> M3_AicXUJ_reversed=1 '\001')
> at ../src/etext/KeyFilter.m3:288
> #29 0x08761a0a in KeyFilter__Set (M3_Bkn9rd_a=111 'o',
> M3_Bkn9rd_b=45 '-',
> M3_AcxOUs_c=245, M3_AicXUJ_bothCases=0 '\0',
> M3_AicXUJ_reversed=0 '\0')
> at ../src/etext/KeyFilter.m3:304
> #30 0x087620a2 in KeyFilter_M3 (M3_AcxOUs_mode=1)
> at ../src/etext/KeyFilter.m3:437
> #31 0x01088444 in RTLinker__RunMainBody (M3_DjPxE3_m=0x287046a0)
> at ../src/runtime/common/RTLinker.m3:399
> #32 0x010882e6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x287070c0)
> at ../src/runtime/common/RTLinker.m3:379
> #33 0x010882e6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x287094e0)
> ---Type <return> to continue, or q <return> to quit---
> at ../src/runtime/common/RTLinker.m3:379
> #34 0x010882e6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x28706b40)
> at ../src/runtime/common/RTLinker.m3:379
> #35 0x010882e6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x287060e0)
> at ../src/runtime/common/RTLinker.m3:379
> #36 0x010882e6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x3c010780)
> at ../src/runtime/common/RTLinker.m3:379
> #37 0x010877fe in RTLinker__AddUnitI (M3_DjPxE3_m=0x3c010780)
> at ../src/runtime/common/RTLinker.m3:113
> #38 0x0108788c in RTLinker__AddUnit (M3_DjPxE5_b=0x1c05c83a)
> at ../src/runtime/common/RTLinker.m3:122
> #39 0x1c008706 in main (argc=1, argv=0xcfbd9ebc, envp=0xcfbd9ec4)
> at _m3main.mc:4
> (gdb)
>
>
>
> Presumably should look at the Java and Boehm stuff..later..
>
>
> - Jay
>
> From: jay.krell at cornell.edu
> To: hosking at cs.purdue.edu
> Date: Fri, 20 Nov 2009 19:16:53 +0000
> CC: m3devel at elegosoft.com
> Subject: Re: [M3devel] OpenBSD/x86 pthreads
>
> $ /cm3/bin/Juno
> assertion "sinfo.ss_sp <= end" failed: file "../src/thread/PTHREAD/
> ThreadPThread
> C.c", line 180, function "ThreadPThread__ProcessStopped"
> Abort trap (core dumped)
> $ gdb /cm3/bin/Juno
> GNU gdb 6.3
> ...
> (gdb) r
> Starting program: /home/jay/cm3/bin/Juno
> assertion "sinfo.ss_sp <= end" failed: file "../src/thread/PTHREAD/
> ThreadPThread
> C.c", line 180, function "ThreadPThread__ProcessStopped"
> Program received signal SIGABRT, Aborted.
> [Switching to process 32202, thread 0x8ad0c000]
> 0x03931f81 in kill () from /usr/lib/libc.so.50.1
> (gdb) up
> #1 0x0397e907 in abort () at /usr/src/lib/libc/stdlib/abort.c:68
> ...
> (gdb) up
> #2 0x0390d85b in __assert2 (
> ...
> (gdb) up
> #3 0x04bfff34 in ThreadPThread__ProcessStopped (mt=0x8ad0c800,
> start=0x0,
> end=0x864fefb0, p=0x4be06ec <RTCollector__NoteStackLocations>)
> at ../src/thread/PTHREAD/ThreadPThreadC.c:180
> 180 assert(sinfo.ss_sp <= end); /* man page says ss_sp is
> "top" */
>
> (gdb) info locals
> sinfo = {ss_sp = 0x864ff000, ss_size = 81920, ss_flags = 0}
>
> (gdb) thread apply all bt
>
> Appears to be this thread.
>
> Thread 4 (process 32202, thread 0x8ad0c800):
> #0 _thread_kern_sched (scp=0x0)
> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1 0x05e01200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
> lock=0x8ad0c8b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2 0x05dfebc9 in pthread_cond_wait (cond=0x882737b0,
> mutex=0x88273870)
> at /usr/src/lib/libpthread/uthread/uthread_cond.c:261
> #3 0x04c003b4 in ThreadPThread__pthread_cond_wait (cond=0x882737b0,
> mutex=0x88273870) at ../src/thread/PTHREAD/ThreadPThreadC.c:506
> #4 0x04bfad66 in ThreadPThread__XWait (M3_DKqeuR_self=0x7f820500,
> M3_AYIbX3_m=0x83281998, M3_Bl0jv4_c=0x832819a4,
> M3_AicXUJ_alertable=0 '\0') at ../src/thread/PTHREAD/
> ThreadPThread.m3:209
> #5 0x04bfae91 in Thread__Wait (M3_AYIbX3_m=0x83281998,
> M3_Bl0jv4_c=0x832819a4) at ../src/thread/PTHREAD/
> ThreadPThread.m3:231
> #6 0x0a7ad5bf in VBTRep__MeterMaid (M3_EMTrVz_self=0x832819cc)
> at ../src/vbt/VBTRep.m3:439
> #7 0x04bfc850 in ThreadPThread__RunThread (M3_DKqeuR_me=0x7f820500)
> at ../src/thread/PTHREAD/ThreadPThread.m3:502
> #8 0x04bfc55b in ThreadPThread__ThreadBase
> (M3_AJWxb1_param=0x7f820500)
> at ../src/thread/PTHREAD/ThreadPThread.m3:476
> #9 0x05df837f in _thread_start ()
> at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> ---Type <return> to continue, or q <return> to quit---
> #10 0x0000002b in ?? ()
> #11 0x00000000 in ?? ()
>
> Thread 3 (process 32202, thread 0x8aae0c00):
> #0 _thread_kern_sched (scp=0x0)
> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1 0x05e01200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
> lock=0x8aae0cb0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2 0x05dfee2d in pthread_cond_timedwait (cond=0x25df30e0,
> mutex=0x25df30dc,
> abstime=0x7effafa8) at /usr/src/lib/libpthread/uthread/
> uthread_cond.c:431
> #3 0x05df85a7 in _thread_gc (arg=0x0)
> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181
> #4 0x05df837f in _thread_start ()
> at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #5 0x0000002b in ?? ()
> #6 0x00000000 in ?? ()
>
> Thread 2 (process 32202, thread 0x8aae0800):
> #0 _thread_start () at /usr/src/lib/libpthread/uthread/
> uthread_create.c:233
> #1 0x0000002b in ?? ()
> #2 0x00000000 in ?? ()
>
> Thread 1 (process 32202, thread 0x8ad0c000):
> ---Type <return> to continue, or q <return> to quit---
> #0 0x03931f81 in kill () from /usr/lib/libc.so.50.1
> #1 0x0397e907 in abort () at /usr/src/lib/libc/stdlib/abort.c:68
> #2 0x0390d85b in __assert2 (
> file=0x24bb2700 "../src/thread/PTHREAD/ThreadPThreadC.c",
> line=180,
> func=0x24bb27cf "ThreadPThread__ProcessStopped",
> failedexpr=0x24bb27f8 "sinfo.ss_sp <= end")
> at /usr/src/lib/libc/gen/assert.c:52
> #3 0x04bfff34 in ThreadPThread__ProcessStopped (mt=0x8ad0c800,
> start=0x0,
> end=0x864fefb0, p=0x4be06ec <RTCollector__NoteStackLocations>)
> at ../src/thread/PTHREAD/ThreadPThreadC.c:180
> #4 0x04bfe85e in ThreadPThread__ProcessOther
> (M3_DKqeuR_act=0x7f820500,
> M3_Ad3xEV_p=0x4be06ec) at ../src/thread/PTHREAD/
> ThreadPThread.m3:1017
> #5 0x04bfe151 in ThreadInternal__ProcessStacks
> (M3_Ad3xEV_p=0x4be06ec)
> at ../src/thread/PTHREAD/ThreadPThread.m3:860
> #6 0x04be1964 in RTCollector__CollectSomeInStateZero ()
> at ../src/runtime/common/RTCollector.m3:819
> #7 0x04be13d2 in RTCollector__CollectSome ()
> at ../src/runtime/common/RTCollector.m3:719
> #8 0x04be0e85 in RTHeapRep__CollectEnough ()
> at ../src/runtime/common/RTCollector.m3:653
> #9 0x04bd8f81 in RTAllocator__AllocTraced (M3_Cwb5VA_dataSize=12,
> M3_Cwb5VA_dataAlignment=4, M3_AmBNir_thread=0x7f820344)
> at ../src/runtime/common/RTAllocator.m3:365
> #10 0x04bd7f30 in RTAllocator__GetTracedRef (M3_Eic7CK_def=0x283aaca0)
> ---Type <return> to continue, or q <return> to quit---
> at ../src/runtime/common/RTAllocator.m3:202
> #11 0x04bd7b4a in RTHooks__AllocateTracedRef
> (M3_AJWxb1_defn=0x283aaca0)
> at ../src/runtime/common/RTAllocator.m3:113
> #12 0x0841f196 in IntIntTbl__Put (M3_DTcOE5_tbl=0x832863f8,
> M3_EN2A1V_key=0xcfbfc1ec, M3_EN2A1V_val=0xcfbfc238)
> at ../I386_OPENBSD/IntIntTbl.m3 => ../src/table/Table.mg:127
> #13 0x0ad56656 in KeyFilter__Set (M3_Bkn9rd_a=45 '-',
> M3_Bkn9rd_b=111 'o',
> M3_AcxOUs_c=245, M3_AicXUJ_bothCases=0 '\0',
> M3_AicXUJ_reversed=1 '\001')
> at ../src/etext/KeyFilter.m3:288
> #14 0x0ad56a0a in KeyFilter__Set (M3_Bkn9rd_a=111 'o',
> M3_Bkn9rd_b=45 '-',
> M3_AcxOUs_c=245, M3_AicXUJ_bothCases=0 '\0',
> M3_AicXUJ_reversed=0 '\0')
> at ../src/etext/KeyFilter.m3:304
> #15 0x0ad570a2 in KeyFilter_M3 (M3_AcxOUs_mode=1)
> at ../src/etext/KeyFilter.m3:437
> #16 0x04beb404 in RTLinker__RunMainBody (M3_DjPxE3_m=0x2acf96a0)
> at ../src/runtime/common/RTLinker.m3:399
> #17 0x04beb2a6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x2acfc0c0)
> at ../src/runtime/common/RTLinker.m3:379
> #18 0x04beb2a6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x2acfe4e0)
> at ../src/runtime/common/RTLinker.m3:379
> #19 0x04beb2a6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x2acfbb40)
> at ../src/runtime/common/RTLinker.m3:379
> #20 0x04beb2a6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x2acfb0e0)
> at ../src/runtime/common/RTLinker.m3:379
> ---Type <return> to continue, or q <return> to quit---
> #21 0x04beb2a6 in RTLinker__RunMainBody (M3_DjPxE3_m=0x3c010780)
> at ../src/runtime/common/RTLinker.m3:379
> #22 0x04bea7be in RTLinker__AddUnitI (M3_DjPxE3_m=0x3c010780)
> at ../src/runtime/common/RTLinker.m3:113
> #23 0x04bea84c in RTLinker__AddUnit (M3_DjPxE5_b=0x1c05c83a)
> at ../src/runtime/common/RTLinker.m3:122
> #24 0x1c008706 in main (argc=1, argv=0xcfbfc66c, envp=0xcfbfc674)
> at _m3main.mc:4
> (gdb)
>
>
> (gdb) up
> #4 0x04bfe85e in ThreadPThread__ProcessOther
> (M3_DKqeuR_act=0x7f820500,
> M3_Ad3xEV_p=0x4be06ec) at ../src/thread/PTHREAD/
> ThreadPThread.m3:1017
> 1017 THEN ProcessStopped(act.handle, act.sp, act.stackbase,
> p);
> (gdb) p M3_DKqeuR_act
> $1 = (void *) 0x7f820500
> (gdb) x 0x7f820500
> 0x7f820500: 0x88273870
> (gdb) x
> 0x7f820504: 0x882737b0
> (gdb)
> 0x7f820508: 0x00000000
> (gdb)
> 0x7f82050c: 0x882738a0
> (gdb)
> 0x7f820510: 0x00000000
> (gdb)
> 0x7f820514: 0x7f820300
> (gdb)
> 0x7f820518: 0x7f820300
> (gdb)
> 0x7f82051c: 0x8ad0c800
>
>
> (gdb) thread 4
> [Switching to thread 4 (process 32202, thread 0x8ad0c800)]#0
> _thread_kern_sched
> (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> 482 /usr/src/lib/libpthread/uthread/uthread_kern.c: No such file
> or director
> y.
> in /usr/src/lib/libpthread/uthread/uthread_kern.c
> (gdb) up
> #1 0x05e01200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
> lock=0x8ad0c8b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> 581 in /usr/src/lib/libpthread/uthread/uthread_kern.c
> (gdb) up
> #2 0x05dfebc9 in pthread_cond_wait (cond=0x882737b0,
> mutex=0x88273870)
> at /usr/src/lib/libpthread/uthread/uthread_cond.c:261
> 261 /usr/src/lib/libpthread/uthread/uthread_cond.c: No such file
> or director
> y.
> in /usr/src/lib/libpthread/uthread/uthread_cond.c
> (gdb) up
> #3 0x04c003b4 in ThreadPThread__pthread_cond_wait (cond=0x882737b0,
> mutex=0x88273870) at ../src/thread/PTHREAD/ThreadPThreadC.c:506
> 506 return pthread_cond_wait(cond, mutex);
> (gdb) info frame
> Stack level 3, frame at 0x864fee50:
> eip = 0x4c003b4 in ThreadPThread__pthread_cond_wait
> (../src/thread/PTHREAD/ThreadPThreadC.c:506); saved eip 0x4bfad66
> called by frame at 0x864feea0, caller of frame at 0x864fee30
> source language c.
> Arglist at 0x864fee48, args: cond=0x882737b0, mutex=0x88273870
> Locals at 0x864fee48, Previous frame's sp is 0x864fee50
> Saved registers:
> ebx at 0x864fee44, ebp at 0x864fee48, esi at 0x864fee20, edi at
> 0x864fee24,
> eip at 0x864fee4c
> (gdb)
>
> (gdb) down
> #1 0x05e01200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
> lock=0x8ad0c8b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> 581 /usr/src/lib/libpthread/uthread/uthread_kern.c: No such file
> or director
> y.
> in /usr/src/lib/libpthread/uthread/uthread_kern.c
> (gdb) down
> #0 _thread_kern_sched (scp=0x0)
> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> 482 in /usr/src/lib/libpthread/uthread/uthread_kern.c
> (gdb) down
> Bottom (i.e., innermost) frame selected; you cannot go down.
> (gdb) info frame
> Stack level 0, frame at 0x864fedd0:
> eip = 0x5e00f70 in _thread_kern_sched
> (/usr/src/lib/libpthread/uthread/uthread_kern.c:482); saved eip
> 0x5e01200
> called by frame at 0x864fedf0
> source language c.
> Arglist at 0x864fedc8, args: scp=0x0
> Locals at 0x864fedc8, Previous frame's sp is 0x864fedd0
> Saved registers:
> ebx at 0x864fedbc, ebp at 0x864fedc8, esi at 0x864fedc0, edi at
> 0x864fedc4,
> eip at 0x864fedcc
>
> I'll try reversing the assert?
>
> - Jay
>
>
> From: hosking at cs.purdue.edu
> To: jay.krell at cornell.edu
> Date: Fri, 20 Nov 2009 09:58:38 -0500
> CC: m3devel at elegosoft.com
> Subject: Re: [M3devel] OpenBSD/x86 pthreads
>
> This looks odd -- the assertion should not fail. It is reporting
> that recorded stack base is not is not in range of the reported
> stack info. What exactly does OpenBSD report in the sinfo? Which
> thread is this? I need a full stack trace of all the threads to
> understand what is going on here.
>
> On 20 Nov 2009, at 04:01, Jay K wrote:
>
> Tony, I'm not sure we really care, but:
>
> (gdb) r
> The program being debugged has been started already.
> Start it from the beginning? (y or n) y
> Starting program: /home/jay/cm3/bin/Juno
> assertion "end >= sinfo.ss_sp" failed: file "../src/thread/PTHREAD/
> ThreadPThread
> C.c", line 180, function "ThreadPThread__ProcessStopped"
> Program received signal SIGABRT, Aborted.
> [Switching to process 5091, thread 0x85a73400]
> 0x042d5f81 in kill () from /usr/lib/libc.so.50.1
> (gdb) up
> #1 0x04322907 in abort () at /usr/src/lib/libc/stdlib/abort.c:68
> ...
> (gdb) up
> #2 0x042b185b in __assert2 (
> ...
> (gdb) up
> #3 0x00b92f24 in ThreadPThread__ProcessStopped (mt=0x85a73800,
> start=0x0,
> end=0x7fe80fb0, p=0xb736dc <RTCollector__NoteStackLocations>)
> at ../src/thread/PTHREAD/ThreadPThreadC.c:180
> 180 assert(end >= sinfo.ss_sp);
> (gdb) info locals
> sinfo = {ss_sp = 0x7fe81000, ss_size = 81920, ss_flags = 0}
> (gdb)
>
>
> - Jay
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20091120/d1204878/attachment-0002.html>
More information about the M3devel
mailing list