From: nobu.nakada@... Date: 2003-07-03T18:13:17+09:00 Subject: [ruby-dev:20492] Re: [BUG] evalがらみでSIGSEGV なかだです。 At Tue, 1 Jul 2003 15:37:45 +0900, yamamoto madoka wrote: > ./foo.rb:26: [BUG] Segmentation fault > ruby 1.8.0 (2003-06-30) [i686-linux] > > 該当部分のコードは以下のようなものです。 > > if Array != val.class > > osはredhat8です。 > > 発生するスクリプトまたもスレッド、ソケット、さらにevalを使ったものです。 > (一連のバグはすべて同じスクリプトで発見してます) すいません、これだけだとちょっと手がかりが少ないのですが、再現 できるスクリプトなどはないでしょうか。 > 出るタイミングはまたしても、たまに出る、という感じです。 > 場所も、GC.startなどを挟むと変わります。 おそらくGC絡みだと思いますが、SEGVしたときにはもう肝心の部分が 壊れてしまってるので。 > Program received signal SIGSEGV, Segmentation fault. > 0x08056c27 in rb_eval (self=1075325136, n=0x6c6f6f74) at ruby.h:630 > 630 if (SYMBOL_P(obj)) return rb_cSymbol; 実際にはその次の return RBASIC(obj)->klass; で、既に開放されているobjをアクセスしてるんでしょう。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦