From: Tanaka Akira Date: 2008-05-23T22:54:12+09:00 Subject: [ruby-dev:34828] SEGV by "abc".gsub(/./).next 以下のようにすると SEGV します。 % ./ruby -ve '"abc".gsub(/./).next' ruby 1.9.0 (2008-05-23 revision 16559) [i686-linux] [BUG] Segmentation fault ruby 1.9.0 (2008-05-23 revision 16559) [i686-linux] -- stack frame ------------ 0000 (0x8274fb8): 00000000 0001 (0x8274fbc): 00000004 0002 (0x8274fc0): 082748b1 0003 (0x8274fc4): 00000004 0004 (0x8274fc8): 08278f5d 0005 (0x8274fcc): 00000004 0006 (0x8274fd0): 08278f25 <- lfp <- dfp -- control frame ---------- c:0004 p:---- s:0007 b:0007 l:000006 d:000006 CFUNC :gsub c:0003 p:---- s:0005 b:0005 l:000004 d:000004 CFUNC :each c:0002 p:---- s:0003 b:0003 l:0008c0 d:000002 IFUNC c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------ --------------------------- DBG> : ":0:in `each'" -- backtrace of native function call (Use addr2line) -- 0x8117d28 0x813c817 0x813c84f 0x80dac83 0xb7fdc440 0x810bfa6 0x810e7af 0x810e815 0x810e85c 0x80b305b 0x80ec7ab 0x80ece0c 0x810d8af 0x810d3ca 0x805d9ff 0x805da4d 0x805ce8e 0x805cd4a 0x805ced7 0x813bd52 0x810d8c5 0x810d3ca 0x805d9ff 0x805da4d 0x805ce8e 0x805cd4a 0x805ced7 0x813bee9 0x810bf77 0x810e5d0 0x810e6d3 0x811d7b5 0x805bb9c 0x805bc38 0x8058d08 0xb7e3dea8 0x8058c11 ------------------------------------------------------- ところで、gsub はブロックの値やメソッドの返り値に意味がある と思うのですが、enumerator 形式ではどうやってブロックの値を 指定し、どうやって返り値を得るんでしょう? -- [田中 哲][たなか あきら][Tanaka Akira]