From: Shugo Maeda Date: 1999-02-06T18:37:40+09:00 Subject: [ruby-dev:4771] [BUG] inspect? 前田です。 Wakou Aoyama writes: > そして、1.3.1-990120 からは、つぎのようにすると 668 回目の p hash の所 > で落ちます。 うちでも落ちるのですが、inspectまわりのバグなんでしょうか。 # inspectの仕組みが変わったみたいですね。 $ ruby -v ruby 1.3.1(99/02/05) [i586-linux] こんなケースで落ちました。 ruby -e 'loop { ENV.each {|i| p i}}' #0 0x40122570 in malloc () #1 0x4012307d in realloc () #2 0x40122d88 in realloc () #3 0x4003e996 in xrealloc (ptr=0x806f988, size=13) at gc.c:103 #4 0x400714d2 in rb_str_cat (str=1075499380, ptr=0x4007cd0a ", ", len=2) at string.c:424 #5 0x4002147a in inspect_ary (ary=1075505780) at array.c:840 #6 0x400212cf in inspect_call (arg=0xbfffdd30) at array.c:766 #7 0x40032c2e in rb_ensure (b_proc=0x400212b0 , data1=3221216560, e_proc=0x400212e0 , data2=1075505780) at eval.c:3462 #8 0x400213bd in rb_protect_inspect (func=0x40021420 , obj=1075505780, arg=0) at array.c:810 #9 0x4002150c in rb_ary_inspect (ary=1075505780) at array.c:854 #10 0x40033126 in call_cfunc (func=0x400214c0 , recv=1075505780, len=0, argc=0, argv=0x0) at eval.c:3612 #11 0x4003373f in rb_call0 (klass=1075525360, recv=1075505780, id=2953, argc=0, argv=0x0, body=0x401b363c, nosuper=1) at eval.c:3748 #12 0x40033e91 in rb_call (klass=1075525360, recv=1075505780, mid=2953, argc=0, argv=0x0, scope=1) at eval.c:3933 #13 0x4003410c in rb_funcall (recv=1075505780, mid=2953, n=0) at eval.c:4007 #14 0x4004f764 in rb_inspect (obj=1075505780) at object.c:144 #15 0x400465d9 in rb_p (obj=1075505780) at io.c:1688 #16 0x40046648 in rb_f_p (argc=1, argv=0xbfffe0f4) at io.c:1702 #17 0x4003314d in call_cfunc (func=0x40046620 , recv=1075547980, len=-1, argc=1, argv=0xbfffe0f4) at eval.c:3618 #18 0x4003373f in rb_call0 (klass=1075551380, recv=1075547980, id=6465, もっと単純にこんなのでも落ちるようです。 ruby -e 'loop {ary = [1,2,3]; p ary}' 0x4011fc0d in _IO_file_xsputn () (gdb) bt #0 0x4011fc0d in _IO_file_xsputn () #1 0x4011d531 in _IO_fwrite () #2 0x400465f7 in rb_p (obj=1075498960) at io.c:1689 #3 0x40046648 in rb_f_p (argc=1, argv=0xbfffe7d4) at io.c:1702 #4 0x4003314d in call_cfunc (func=0x40046620 , recv=1075547980, len=-1, argc=1, argv=0xbfffe7d4) at eval.c:3618 #5 0x4003373f in rb_call0 (klass=1075551380, recv=1075547980, id=6465, argc=1, argv=0xbfffe7d4, body=0x401b1404, nosuper=1) at eval.c:3748 #6 0x40033e91 in rb_call (klass=1075551380, recv=1075547980, mid=6465, argc=1, argv=0xbfffe7d4, scope=1) at eval.c:3933 #7 0x4002ef8c in rb_eval (self=1075547980, node=0x401ad070) at eval.c:2160 #8 0x4002d69c in rb_eval (self=1075547980, node=0x401ad034) at eval.c:1695 #9 0x40031e50 in rb_yield_0 (val=4, self=1075547980, klass=0) at eval.c:3159 #10 0x4003202b in rb_f_loop () at eval.c:3206 #11 0x40033126 in call_cfunc (func=0x40032010 , recv=1075547980, len=0, argc=0, argv=0x0) at eval.c:3612 #12 0x4003373f in rb_call0 (klass=1075551380, recv=1075547980, id=3577, argc=0, argv=0x0, body=0x401b8740, nosuper=1) at eval.c:3748 #13 0x40033e91 in rb_call (klass=1075551380, recv=1075547980, mid=3577, argc=0, argv=0x0, scope=1) at eval.c:3933 #14 0x4002ef8c in rb_eval (self=1075547980, node=0x401ad00c) at eval.c:2160 #15 0x4002df3e in rb_eval (self=1075547980, node=0x401ad020) at eval.c:1901 #16 0x4002ba89 in eval_node (self=1075547980) at eval.c:961 #17 0x4002bb6f in ruby_run () at eval.c:990 #18 0x80485c9 in main (argc=3, argv=0xbffffc54, envp=0xbffffc64) at main.c:39 -- 前田 修吾 (mailto:shugo@netlab.co.jp)