[Openmcl-devel] Random crashing
Osei Poku
osei.poku at gmail.com
Mon Jul 21 15:02:08 PDT 2008
On Jul 21, 2008, at 5:53 PM, Gary Byers wrote:
> If you still have the debugging session running, could you do:
>
> (gdb) p/x *(TCR *)0x417e77d0
(gdb) p/x *(TCR *)0x417e77d0
$1 = {next = 0x0, prev = 0x0, single_float_convert = {tag = 0x1, f =
0x0}, linear = 0x0, save_rbp = 0x2aaaadd49ab0, lisp_mxcsr = 0x1920,
foreign_mxcsr = 0x1f80, db_link = 0x0, catch_top = 0x0, save_vsp =
0x2aaaadd49a58, save_tsp = 0x2aaaade5b000, foreign_sp = 0x417e6da0,
cs_area = 0x0, vs_area = 0x0, ts_area = 0x0, cs_limit = 0x415b6000,
bytes_allocated = 0x0,
log2_allocation_quantum = 0x11, interrupt_pending = 0x0, xframe =
0x0, errno_loc = 0x417e7770, ffi_exception = 0x1f80, osid = 0x0,
valence = 0x1, foreign_exception_status = 0x0, native_thread_info =
0x0, native_thread_id = 0x1847, last_allocptr = 0x3000455e0000,
save_allocptr = 0x3000455db200, save_allocbase = 0x3000455c0000,
reset_completion = 0x0, activate = 0x0,
suspend_count = 0x0, suspend_context = 0x0,
pending_exception_context = 0x0, suspend = 0x0, resume = 0x0, flags =
0x0, gc_context = 0x0, termination_semaphore = 0x0, unwinding = 0x0,
tlb_limit = 0x0, tlb_pointer = 0x0, shutdown_count = 0x0, next_tsp =
0x2aaaade5b000, safe_ref_address = 0x0}
To save your eyes scanning,
resume = 0x0
>
>
> That address is the value of the "tcr" argument to "resume_tcr()" in
> frame #7 in the backtrace below, so if you don't still have the
> debugging session and reproduce the problem, we want to see what
> the value of the "tcr" argument to resume_tcr() at the point was
> at the point where resume_tcr() called sem_post() and crashed.
>
> The gdb command above means "print, in hex, this contents of
> what this address points to, interpreting that address as
> being of type "pointer to TCR" (where a TCR is a "Thread Context
> Record" that contains several interesting fields.)
>
> 'resume_tcr()' basically does 'sem_post(tcr->resume)', and a crash
> would make sense if tcr->resume was NULL. If it was, then one of
> the threads that's doing sem_timedwait() on its 'resume' semaphore
> would presumably be waiting on a NULL semahore, and that doesn't
> make sense.
More information about the Openmcl-devel
mailing list