From: yamamoto madoka Date: 2003-07-01T15:37:45+09:00 Subject: [ruby-dev:20490] [BUG] evalがらみでSIGSEGV こんにちは、山本 円と申します。 またまた、BUGが出ましたのでご報告します。 ./foo.rb:26: [BUG] Segmentation fault ruby 1.8.0 (2003-06-30) [i686-linux] 該当部分のコードは以下のようなものです。 if Array != val.class osはredhat8です。 発生するスクリプトまたもスレッド、ソケット、さらにevalを使ったものです。 (一連のバグはすべて同じスクリプトで発見してます) 出るタイミングはまたしても、たまに出る、という感じです。 場所も、GC.startなどを挟むと変わります。 以下スタックトレースです。 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; (gdb) bt #0 0x08056c27 in rb_eval (self=1075325136, n=0x6c6f6f74) at ruby.h:630 #1 0x08056c91 in rb_eval (self=1075325136, n=0x6c6f6f74) at ruby.h:630 #2 0x08055783 in rb_eval (self=1075325136, n=0x6c6f6f74) at eval.c:2531 #3 0x0805ae08 in rb_call0 (klass=1075336956, recv=1075325136, id=2937, oid=1819242356, argc=0, argv=0xbfff8ba4, body=0x4018dba4, nosuper=0) at eval.c:5007 #4 0x0805b2b1 in rb_call (klass=1075336956, recv=1075325136, mid=2937, argc=1, argv=0xbfff8ba0, scope=1) at eval.c:5096 #5 0x0805b583 in rb_funcall2 (recv=0, mid=2937, argc=1, argv=0xbfff8ba0) at ruby.h:625 #6 0x0805d646 in rb_obj_call_init (obj=1075325136, argc=1, argv=0xbfff8ba0) at eval.c:6217 #7 0x0807b81c in rb_class_new_instance (argc=1, argv=0xbfff8ba0, klass=1075335956) at object.c:762 #8 0x08064b77 in call_cfunc (func=0x807b7fc , recv=1075335956, len=0, argc=1, argv=0x0) at eval.c:4742 #9 0x0805ab29 in rb_call0 (klass=1074478328, recv=1075335956, id=3337, oid=1819242356, argc=1, argv=0xbfff8ba0, body=0x400b2b64, nosuper=1) at eval.c:4879 #10 0x0805b2b1 in rb_call (klass=1074478328, recv=1075335956, mid=3337, argc=1, argv=0xbfff8ba0, scope=0) at eval.c:5096 #11 0x08056bef in rb_eval (self=1074473548, n=0x6c6f6f74) at eval.c:2975 #12 0x08056af3 in rb_eval (self=1074473548, n=0x6c6f6f74) at eval.c:2968 #13 0x0805667d in rb_eval (self=1074473548, n=0x6c6f6f74) at eval.c:3163 #14 0x0805c939 in rb_load (fname=1075331376, wrap=0) at eval.c:5736 #15 0x0805ca9e in rb_f_load (argc=1, argv=0xbfff9e70) at eval.c:5785 #16 0x08064b77 in call_cfunc (func=0x805ca68 , recv=1075382616, len=0, argc=1, argv=0x0) at eval.c:4742 #17 0x0805ab29 in rb_call0 (klass=1074478228, recv=1075382616, id=9193, oid=1819242356, argc=1, argv=0xbfff9e70, body=0x400a5734, nosuper=1) at eval.c:4879 #18 0x0805b2b1 in rb_call (klass=1074478228, recv=1075382616, mid=9193, argc=1, argv=0xbfff9e70, scope=1) at eval.c:5096 ---Type to continue, or q to quit--- 山本 円 dan@xa2.so-net.ne.jp