咳です。


> |例外の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