Hi, 2008/6/12, Paul Boekholt <p.boekholt / gmail.com>: > 2008/6/12, Nobuyoshi Nakada <nobu / ruby-lang.org>: > > > It doesn't change ruby_init_stack(), but makes the function > > will be called always instead of Init_stack(). > > > This is a mystery, because currently I'm not using Init_stack(). I'm > > using ruby_init_stack(). I've had time to do some debugging, it seems the only place in the module where Init_stack is called, is from ruby_init(). But I still don't understand why revision 17036 would break it. I've run the module in gdb with revision 17639. I'm having a problem in rb_load_protect: 308 void 309 rb_load_protect(VALUE fname, int wrap, int *state) 310 { 311 int status; 312 313 PUSH_TAG(); 314 if ((status = EXEC_TAG()) == 0) { 315 rb_load(fname, wrap); 316 } 317 POP_TAG(); 318 if (state) 319 *state = status; 320 } (gdb) break rb_load_protect Breakpoint 1 at 0xb7ab073a: file load.c, line 313. (gdb) cont Continuing. [Switching to Thread -1211147488 (LWP 11503)] Breakpoint 1, rb_load_protect (fname=134750700, wrap=0, state=0xbfd202bc) at load.c:313 313 PUSH_TAG(); (gdb) break 317 Breakpoint 2 at 0xb7ab0771: file load.c, line 317. (gdb) n 314 if ((status = EXEC_TAG()) == 0) { (gdb) n 315 rb_load(fname, wrap); (gdb) p status $1 = 0 (gdb) cont Continuing. Breakpoint 2, rb_load_protect (fname=134750700, wrap=0, state=0xbfd202bc) at load.c:317 317 POP_TAG(); (gdb) p status $2 = 8 (gdb) backtrace #0 rb_load_protect (fname=134750700, wrap=0, state=0xbfd202bc) at load.c:317 #1 0xb7a963aa in slrb_load_file (s=0x807db08 "./slruby.sl") at ruby-module.c:837 How can status change from 0 to 8 between lines 315 and 317?