咳です。 > |例外のexit_valueがnilになっているのかしら。 > > なってますね。以下のパッチをどうぞ。 > > --- eval.c 12 Sep 2003 03:30:45 -0000 1.535 > +++ eval.c 17 Sep 2003 14:41:33 -0000 > @@ -7063,3 +7062,3 @@ proc_invoke(proc, args, self, klass) > state == TAG_BREAK ? "break" : "return"); > - localjump_error(mesg, prot_tag->retval, state); > + localjump_error(mesg, result, state); > } > ありがとうございます。 commitされたようなのでcvs upしたrubyで試したところ、 [BUG] Segmentation fault ruby 1.8.0 (2003-09-17) [i686-linux] となりました。 gdbの中で動かしてバックトレースを見られたので送ります。 なにかの情報になると良いんですが‥ % gdb ruby18 (gdb) run test_drb.rb ... ... DRbAryTest#test_04_retry . DRbAryTest#test_05_break Program received signal SIGSEGV, Segmentation fault. rb_respond_to (obj=6, id=9953) at ruby.h:634 634 return RBASIC(obj)->klass; (gdb) bt #0 rb_respond_to (obj=6, id=9953) at ruby.h:634 #1 0x08076fb5 in w_object (obj=6, arg=0xbfff5734, limit=-3) at marshal.c:482 #2 0x08076c2f in obj_each (id=15298, value=6, arg=0xbfff55c0) at marshal.c:354 #3 0x080a7694 in st_foreach (table=0x8156720, func=0x8076c04 <obj_each>, arg=3221181888) at st.c:495 #4 0x08076e27 in w_ivar (tbl=0x8156720, arg=0xbfff55c0) at marshal.c:417 #5 0x0807757e in w_object (obj=1075832012, arg=0xbfff5734, limit=-2) at marshal.c:633 #6 0x0807764a in dump (arg=0xbfff5728) at marshal.c:666 #7 0x0805a910 in rb_ensure (b_proc=0x8077630 <dump>, data1=3221182248, e_proc=0x807767c <dump_ensure>, data2=3221182260) at eval.c:4596 #8 0x08077815 in marshal_dump (argc=1, argv=0xbfff5994) at marshal.c:735 #9 0x0805b5be in rb_call0 (klass=1075578608, recv=1075578668, id=4337, oid=4337, argc=1, argv=0xbfff5994, body=0x401c06dc, nosuper=0) at eval.c:4787 #10 0x0805c016 in rb_call (klass=1075578608, recv=1075578668, mid=4337, argc=1, argv=0xbfff5994, scope=0) at eval.c:5136 #11 0x08056f70 in rb_eval (self=1075853312, n=0x40212594) at eval.c:2972 #12 0x08057a6a in rb_eval (self=1075853312, n=0x40212580) at eval.c:3153 #13 0x080565de in rb_eval (self=1075853312, n=0x4021242c) at eval.c:2791 #14 0x0805bbc9 in rb_call0 (klass=1075802612, recv=1075853312, id=4337, oid=4337, argc=0, argv=0xbfff6a38, body=0x4021242c, nosuper=0) at eval.c:5043 #15 0x0805c016 in rb_call (klass=1075802612, recv=1075853312, mid=4337, argc=1, argv=0xbfff6a34, scope=1) at eval.c:5136 #16 0x0805716c in rb_eval (self=1075853312, n=0x40210898) at eval.c:2986 #17 0x08056e06 in rb_eval (self=1075853312, n=0x40210870) at eval.c:2968 #18 0x08056e06 in rb_eval (self=1075853312, n=0x402107f8) at eval.c:2968 #19 0x0805bbc9 in rb_call0 (klass=1075802612, recv=1075853312, id=12625, oid=12625, argc=0, argv=0xbfff7b00, body=0x402107f8, nosuper=0) at eval.c:5043 #20 0x0805c016 in rb_call (klass=1075802612, recv=1075853312, mid=12625, argc=3, argv=0xbfff7af4, scope=0) at eval.c:5136 #21 0x08056f70 in rb_eval (self=1075853812, n=0x4020c400) at eval.c:2972 #22 0x0805bbc9 in rb_call0 (klass=1075801912, recv=1075853812, id=12625, oid=12625, argc=0, argv=0xbfff821c, body=0x4020c400, nosuper=0) at eval.c:5043 #23 0x0805c016 in rb_call (klass=1075801912, recv=1075853812, mid=12625, argc=2, argv=0xbfff8214, scope=0) at eval.c:5136 #24 0x08056f70 in rb_eval (self=1075772372, n=0x40201410) at eval.c:2972 #25 0x080565de in rb_eval (self=1075772372, n=0x4020180c) at eval.c:2791 #26 0x08056789 in rb_eval (self=1075772372, n=0x402011cc) at eval.c:2834 #27 0x08059b83 in rb_yield_0 (val=6, self=1075772372, klass=0, flags=0, avalue=0) at eval.c:4172 #28 0x08059e78 in rb_f_loop () at eval.c:4273 #29 0x0805b5f1 in rb_call0 (klass=1075645608, recv=1075772372, id=3921, oid=3921, argc=0, argv=0x0, body=0x401cf1a0, nosuper=0) at eval.c:4793 #30 0x0805c016 in rb_call (klass=1075645608, recv=1075772372, mid=3921, argc=0, argv=0x0, scope=1) at eval.c:5136 #31 0x0805716c in rb_eval (self=1075772372, n=0x40201190) at eval.c:2986 #32 0x080561fc in rb_eval (self=1075772372, n=0x4020199c) at eval.c:2710 #33 0x08059b83 in rb_yield_0 (val=1075853812, self=1075772372, klass=0, flags=2, avalue=2) at eval.c:4172 #34 0x08064740 in rb_thread_yield (arg=1075881492, th=0x81cfb20) at eval.c:9524 #35 0x080644b9 in rb_thread_start_0 (fn=0x80646a4 <rb_thread_yield>, arg=0x4020a614, th_arg=0x81cfb20) at eval.c:9443 #36 0x0806482e in rb_thread_start (klass=1075630408, args=1075881492) at eval.c:9563 #37 0x0805b5be in rb_call0 (klass=1075630388, recv=1075630408, id=4993, oid=4993, argc=1, argv=0xbfffa314, body=0x401cd0bc, nosuper=0) at eval.c:4787 #38 0x0805c016 in rb_call (klass=1075630388, recv=1075630408, mid=4993, argc=1, argv=0xbfffa314, scope=0) at eval.c:5136 #39 0x08056f70 in rb_eval (self=1075772372, n=0x40201c1c) at eval.c:2972 #40 0x080561fc in rb_eval (self=1075772372, n=0x402010f0) at eval.c:2710 #41 0x0805bbc9 in rb_call0 (klass=1075799972, recv=1075772372, id=13273, oid=13273, argc=0, argv=0x0, body=0x402010f0, nosuper=0) at eval.c:5043 #42 0x0805c016 in rb_call (klass=1075799972, recv=1075772372, mid=13273, argc=0, argv=0x0, scope=2) at eval.c:5136 #43 0x080571dc in rb_eval (self=1075772372, n=0x40204840) at eval.c:2992 #44 0x08055ed7 in rb_eval (self=1075772372, n=0x40204804) at eval.c:2640 #45 0x08056789 in rb_eval (self=1075772372, n=0x402046c4) at eval.c:2834 #46 0x08059b83 in rb_yield_0 (val=1075772152, self=1075772372, klass=0, flags=2, avalue=2) at eval.c:4172 #47 0x08064740 in rb_thread_yield (arg=1075772152, th=0x81911f0) at eval.c:9524 #48 0x080644b9 in rb_thread_start_0 (fn=0x80646a4 <rb_thread_yield>, arg=0x401efaf8, th_arg=0x81911f0) at eval.c:9443 #49 0x0806482e in rb_thread_start (klass=1075630408, args=1075772152) at eval.c:9563 #50 0x0805b5be in rb_call0 (klass=1075630388, recv=1075630408, id=4993, oid=4993, argc=0, argv=0x0, body=0x401cd0bc, nosuper=0) at eval.c:4787 #51 0x0805c016 in rb_call (klass=1075630388, recv=1075630408, mid=4993, argc=0, argv=0x0, scope=0) at eval.c:5136 #52 0x08056f70 in rb_eval (self=1075772372, n=0x402048cc) at eval.c:2972 #53 0x080561fc in rb_eval (self=1075772372, n=0x4020464c) at eval.c:2710 #54 0x0805bbc9 in rb_call0 (klass=1075799972, recv=1075772372, id=5073, oid=5073, argc=0, argv=0x0, body=0x4020464c, nosuper=0) at eval.c:5043 #55 0x0805c016 in rb_call (klass=1075799972, recv=1075772372, mid=5073, argc=0, argv=0x0, scope=2) at eval.c:5136 #56 0x080571dc in rb_eval (self=1075772372, n=0x40205d30) at eval.c:2992 #57 0x08057b32 in rb_eval (self=1075772372, n=0x40206078) at eval.c:3173 #58 0x0805bbc9 in rb_call0 (klass=1075799972, recv=1075772372, id=2953, oid=2953, argc=0, argv=0xbfffdce0, body=0x40206078, nosuper=0) at eval.c:5043 #59 0x0805c016 in rb_call (klass=1075799972, recv=1075772372, mid=2953, argc=3, argv=0xbfffdcd4, scope=1) at eval.c:5136 #60 0x0805c2b9 in rb_funcall2 (recv=1075772372, mid=2953, argc=3, argv=0xbfffdcd4) at eval.c:5211 #61 0x0805e483 in rb_obj_call_init (obj=1075772372, argc=3, argv=0xbfffdcd4) at eval.c:6271 #62 0x0807ea4f in rb_class_new_instance (argc=3, argv=0xbfffdcd4, klass=1075799972) at object.c:767 #63 0x0805b5be in rb_call0 (klass=1075645688, recv=1075799972, id=3353, oid=3353, argc=3, argv=0xbfffdcd4, body=0x401cfb64, nosuper=0) at eval.c:4787 #64 0x0805c016 in rb_call (klass=1075645688, recv=1075799972, mid=3353, argc=3, argv=0xbfffdcd4, scope=0) at eval.c:5136 #65 0x08056f70 in rb_eval (self=1075772752, n=0x401bfa70) at eval.c:2972 #66 0x08057b32 in rb_eval (self=1075772752, n=0x401bfdb8) at eval.c:3173 #67 0x0805bbc9 in rb_call0 (klass=1075783992, recv=1075772752, id=2953, oid=2953, argc=0, argv=0x0, body=0x401bfdb8, nosuper=0) at eval.c:5043 #68 0x0805c016 in rb_call (klass=1075783992, recv=1075772752, mid=2953, argc=0, argv=0x0, scope=1) at eval.c:5136 #69 0x0805c2b9 in rb_funcall2 (recv=1075772752, mid=2953, argc=0, argv=0x0) at eval.c:5211 #70 0x0805e483 in rb_obj_call_init (obj=1075772752, argc=0, argv=0x0) at eval.c:6271 #71 0x0807ea4f in rb_class_new_instance (argc=0, argv=0x0, klass=1075783992) at object.c:767 #72 0x0805b5be in rb_call0 (klass=1075645688, recv=1075783992, id=3353, oid=3353, argc=0, argv=0x0, body=0x401cfb64, nosuper=0) at eval.c:4787 #73 0x0805c016 in rb_call (klass=1075645688, recv=1075783992, mid=3353, argc=0, argv=0x0, scope=0) at eval.c:5136 #74 0x08056f70 in rb_eval (self=1075640928, n=0x401b000c) at eval.c:2972 #75 0x08057b02 in rb_eval (self=1075640928, n=0x401c03f8) at eval.c:3168 #76 0x080532b0 in eval_node (self=1075640928, node=0x401c03f8) at eval.c:1204 #77 0x08053766 in ruby_exec () at eval.c:1369 #78 0x080537bd in ruby_run () at eval.c:1390 #79 0x08051cb2 in main (argc=2, argv=0xbffff714, envp=0xbffff720) at main.c:50 #80 0x4009113f in __libc_start_main (main=0x8051c90 <main>, argc=2, ubp_av=0xbffff714, init=0x80510b0 <_init>, fini=0x80c22f0 <_fini>, rtld_fini=0x4000c770 <_dl_fini>, stack_end=0xbffff70c) at ../sysdeps/generic/libc-start.c:129