From: Dave Thomas Date: 2000-06-02T01:25:16-05:00 Subject: [ruby-talk:03086] mod_ruby segv I've got a stack-backtrace for that mod_ruby segv. Right now its with a Ruby built with -O2, so I'm not sure how reliable the local variables are. Anyway, I thought I'd post this before getting some sleep. Regards Dave This is with the latest CVS ruby and mod_ruby. I manually override the Makefile in mod_ruby to force static linking of libruby.a Program received signal SIGSEGV, Segmentation fault. rb_thread_start_0 (fn=0x403c6e50 , arg=0x80c1f94, th=0x0) at eval.c:7481 7481 th->result = (*fn)(arg, th); (gdb) bt #0 rb_thread_start_0 (fn=0x403c6e50 , arg=0x80c1f94, th=0x0) at eval.c:7481 #1 0x403e29be in rb_thread_create (fn=0x403c6e50 , arg=0x80c1f94) at eval.c:7517 #2 0x0 in ?? () (gdb) p th $1 = 0x0 (gdb) p $2 = 0x0 (gdb) l 7476 7477 PUSH_TAG(PROT_THREAD); 7478 if ((state = EXEC_TAG()) == 0) { 7479 if (THREAD_SAVE_CONTEXT(th) == 0) { 7480 curr_thread = th; 7481 th->result = (*fn)(arg, th); 7482 } 7483 } 7484 POP_TAG(); 7485 status = th->status; (gdb) p curr_thread $3 = 0x80c4440 (gdb) p *curr_thread $4 = {next = 0x80ac9d0, prev = 0x80ac9d0, context = {{__jmpbuf = {-1073746084, 0, 135021632, -1073745956, -1073746432, 1077811752}, __mask_was_saved = 0, __saved_mask = {__val = {0 }}}}, result = 0, stk_len = 376, stk_max = 376, stk_ptr = 0x80c78a8, stk_pos = 0xbfffede0, frame = 0xbffff108, scope = 0x404b6d34, dyna_vars = 0x0, block = 0x0, iter = 0xbffff03c, tag = 0xbffff1d8, klass = 1078684960, wrapper = 0, flags = 0, file = 0x404412c4 "ruby", line = 0, tracing = 0, errinfo = 1078627020, last_status = 4, last_line = 4, last_match = 4, safe = 1, status = THREAD_RUNNABLE, wait_for = 0, fd = 0, readfds = {__fds_bits = {0 }}, writefds = {__fds_bits = { 0 }}, exceptfds = {__fds_bits = { 0 }}, select_value = 0, delay = 0, join = 0x0, abort = 0, priority = 0, gid = 1, locals = 0x0, thread = 1078627480} (gdb) p *fn $5 = {VALUE ()} 0x403c6e50