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>