From: "H.Yamamoto" Date: 2005-07-29T18:21:35+09:00 Subject: [ruby-dev:26647] Re: SEGV at zsuper with anonymous rest args. 山本です。 >|1.9がtest_super.rbのtest_array1でSEGVしています。 >| >|* eval.c (rb_call0): fix calling zsuper from a method with anonymous >| rest argument. > >コミットしてください。 まだ落ちているようです。コールスタックを添付します。 // test19 ruby\test_super.rb rb_ary_new4(long 1, const unsigned long * 0x00000008) line 194 + 20 bytes formal_assign(unsigned long 46078976, RNode * 0x02c02250, int 1, unsigned long * 0x00000008, unsigned long * 0x02403960) line 5779 + 13 bytes rb_call0() line 5926 + 31 bytes rb_call(unsigned long 46132880, unsigned long 46078976, unsigned long 11569, int 1, const unsigned long * 0x00000008, int 3) line 6028 + 40 bytes rb_call_super(int 1, const unsigned long * 0x00000008) line 6150 + 35 bytes rb_eval(unsigned long 46078976, RNode * 0x02c01818) line 3481 + 19 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 46131992, unsigned long 46078976, unsigned long 11569, int 1, const unsigned long * 0x024044cc, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46128032, RNode * 0x02c005a0) line 3418 + 212 bytes rb_eval(unsigned long 46128032, RNode * 0x02c00558) line 3428 + 210 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 46133000, unsigned long 46128032, unsigned long 13313, int 0, const unsigned long * 0x02405730, int 1) line 6028 + 40 bytes rb_f_send() line 6076 + 161 bytes rb_call0() line 5857 + 157 bytes rb_call(unsigned long 44869872, unsigned long 46128032, unsigned long 3921, int 1, const unsigned long * 0x0240572c, int 1) line 6028 + 40 bytes rb_eval(unsigned long 46128032, RNode * 0x02ab3100) line 3433 + 182 bytes rb_eval(unsigned long 46128032, RNode * 0x02ab2b30) line 3233 + 16 bytes rb_eval(unsigned long 46128032, RNode * 0x02ab31d8) line 3282 + 16 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 44680392, unsigned long 46128032, unsigned long 5161, int 1, const unsigned long * 0x02406e30, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46128656, RNode * 0x02a9d8c0) line 3418 + 212 bytes call_block() line 8874 + 18 bytes rb_block_pass() line 8812 + 7 bytes block_pass(unsigned long 46128656, RNode * 0x02a9d8d8) line 8886 + 34 bytes rb_eval(unsigned long 46128656, RNode * 0x02a9d8d8) line 3115 + 13 bytes rb_yield_0(unsigned long 46128032, unsigned long 46128656, unsigned long 0, int 0, int 0) line 4981 + 13 bytes rb_yield(unsigned long 46128032) line 5063 + 17 bytes rb_ary_each(unsigned long 46128128) line 1250 + 18 bytes rb_call0() line 5857 + 178 bytes rb_call(unsigned long 44836440, unsigned long 46128128, unsigned long 3865, int 0, const unsigned long * 0x00000000, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46128656, RNode * 0x02a9d9c8) line 3418 + 212 bytes rb_eval(unsigned long 46128656, RNode * 0x02a9daa0) line 3142 + 16 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 44681424, unsigned long 46128656, unsigned long 5161, int 1, const unsigned long * 0x024091a0, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46130648, RNode * 0x02a9d8c0) line 3418 + 212 bytes call_block() line 8874 + 18 bytes rb_block_pass() line 8812 + 7 bytes block_pass(unsigned long 46130648, RNode * 0x02a9d8d8) line 8886 + 34 bytes rb_eval(unsigned long 46130648, RNode * 0x02a9d8d8) line 3115 + 13 bytes rb_yield_0(unsigned long 46128656, unsigned long 46130648, unsigned long 0, int 0, int 0) line 4981 + 13 bytes rb_yield(unsigned long 46128656) line 5063 + 17 bytes rb_ary_each(unsigned long 46130672) line 1250 + 18 bytes rb_call0() line 5857 + 178 bytes rb_call(unsigned long 44836440, unsigned long 46130672, unsigned long 3865, int 0, const unsigned long * 0x00000000, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46130648, RNode * 0x02a9d9c8) line 3418 + 212 bytes rb_eval(unsigned long 46130648, RNode * 0x02a9daa0) line 3142 + 16 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 44681424, unsigned long 46130648, unsigned long 5161, int 1, const unsigned long * 0x0240b510, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46084184, RNode * 0x02bf9130) line 3418 + 212 bytes rb_eval(unsigned long 46084184, RNode * 0x02bf9778) line 3142 + 16 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 46085840, unsigned long 46084184, unsigned long 13553, int 0, const unsigned long * 0x00000000, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46085264, RNode * 0x02bfc058) line 3418 + 212 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 46085072, unsigned long 46085264, unsigned long 13441, int 0, const unsigned long * 0x00000000, int 2) line 6028 + 40 bytes rb_eval(unsigned long 46085264, RNode * 0x02bfceb0) line 3439 + 174 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 46085072, unsigned long 46085264, unsigned long 5081, int 0, const unsigned long * 0x00000000, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46085072, RNode * 0x02a948c0) line 3418 + 212 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 46084952, unsigned long 46085072, unsigned long 5161, int 2, const unsigned long * 0x0240e09c, int 0) line 6028 + 40 bytes rb_eval(unsigned long 46206224, RNode * 0x02a95220) line 3418 + 212 bytes rb_eval(unsigned long 46206224, RNode * 0x02a952e0) line 3412 + 16 bytes rb_call0() line 5935 + 13 bytes rb_call(unsigned long 46207688, unsigned long 46206224, unsigned long 5161, int 0, const unsigned long * 0x00000000, int 0) line 6028 + 40 bytes rb_eval(unsigned long 44864184, RNode * 0x02ab6ac0) line 3418 + 212 bytes rb_eval(unsigned long 44864184, RNode * 0x02ab6b20) line 3428 + 210 bytes eval_node() line 1412 + 13 bytes ruby_exec_internal() line 1595 + 18 bytes ruby_exec() line 1612 ruby_run() line 1628 + 5 bytes main() line 40 RUBY! mainCRTStartup + 227 bytes KERNEL32! 77e78989()