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 <load_ruby_script>, arg=0x80c1f94, th=0x0)
    at eval.c:7481
7481                th->result = (*fn)(arg, th);
(gdb) bt
#0  rb_thread_start_0 (fn=0x403c6e50 <load_ruby_script>, arg=0x80c1f94, th=0x0)
    at eval.c:7481
#1  0x403e29be in rb_thread_create (fn=0x403c6e50 <load_ruby_script>,
    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 <repeats 32 times>}}}},
  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 <repeats 32 times>}}, writefds = {__fds_bits = {
      0 <repeats 32 times>}}, exceptfds = {__fds_bits = {
      0 <repeats 32 times>}}, select_value = 0, delay = 0, join = 0x0,
  abort = 0, priority = 0, gid = 1, locals = 0x0, thread = 1078627480}
(gdb) p *fn
$5 = {VALUE ()} 0x403c6e50 <load_ruby_script>