岩室@富士通です。

In message "[ruby-dev:8631] Re: [BUG?] core dump `ruby -r debug'"
    on 99/12/11, IWAMURO Motonori <iwa / mmp.fujitsu.co.jp> writes:
>   スタックフレームとか操作している部分が付近にあるよーですので、もしか
> してgccの最適化の問題? # うぁぁぁ(^^;

  外れでした(^^; 疑ってごめんね>gcc

  eval.cのrb_load()でPUSH_FRAME()しています(4756行目)が、その後
POP_FRAME()するまでの間にruby_frame->last_classの値が初期化されないの
で、スタックフレーム上に残ったゴミが入ったままになってしまいます。この
状態でmodule_setup()までたどり付くと、ruby_frame->last_classを
call_trace_func()に渡しているのが間接的原因になってお亡くなりになるよ
うです。

  とりあえずこんな(↓)風にいじってみましたがこれで正しいのかどうかはわ
かりません(^^; 一応コケなくなりましたが……。

# 1.4.xでコケないのはmodule_setup()でruby_frame->last_classを使ってい
# ないからですね、きっと……。

BEGIN---BEGIN---BEGIN---BEGIN---BEGIN---BEGIN---BEGIN---BEGIN---BEGIN
diff -u eval.c.o1 eval.c
--- eval.c.o1	Fri Dec 17 19:27:27 1999
+++ eval.c	Fri Dec 17 19:27:43 1999
@@ -4755,6 +4755,7 @@
     }
     PUSH_FRAME();
     ruby_frame->last_func = 0;
+    ruby_frame->last_class = 0;
     ruby_frame->self = ruby_top_self;
     ruby_frame->cbase = (VALUE)rb_node_newnode(NODE_CREF,ruby_class,0,0);
     PUSH_SCOPE();
END---END---END---END---END---END---END---END---END---END---END---END
-- 
岩室元典 [E-Mail: vmi / kw.netlaputa.ne.jp / iwa / mmp.fujitsu.co.jp]
「流行ってるの?                          ([雑誌] ねこめ〜わく …とか いろいろ
  流行ってるの? ぴこぴこはんまー?」        「ぴこぴこぶんぶん」竹本泉/宙出版)