From: Tanaka Akira Date: 2006-06-30T18:11:25+09:00 Subject: [ruby-dev:28913] Re: b = binding; b.eval("xxx") In article <87u063zfxb.fsf@m17n.org>, Tanaka Akira writes: > % ./ruby -ve ' > b = binding > b.eval("xxx")' > ruby 1.9.0 (2006-06-29) [i686-linux] > zsh: segmentation fault (core dumped) ./ruby -ve ' b = binding b.eval("xxx")' 調べてみると初期化していない値を使ってしまっているようで、と りあえず、以下のようにすると落ちなくなりますが、これが正しい かどうか判断がつきません。 というか、この値が使われるとは想定されていない可能性があるよ うに思います。 どうなんでしょう? Index: eval.c =================================================================== RCS file: /src/ruby/eval.c,v retrieving revision 1.910 diff -u -p -r1.910 eval.c --- eval.c 28 Jun 2006 04:51:27 -0000 1.910 +++ eval.c 30 Jun 2006 09:03:43 -0000 @@ -8165,6 +8165,7 @@ rb_f_binding(VALUE self) VALUE bind; PUSH_FRAME(Qtrue); + ruby_frame->self = self; PUSH_BLOCK(ruby_frame->block,0,0); bind = Data_Make_Struct(rb_cBinding,struct BLOCK,blk_mark,blk_free,data); *data = *ruby_frame->block; -- [田中 哲][たなか あきら][Tanaka Akira]