From: Tanaka Akira Date: 2010-08-07T09:51:30+09:00 Subject: [ruby-dev:41954] Re: [bug:trunk] call File.lchmod via rb_funcall [BUG] vm_call0: unsupported method type (7) 2010年8月7日9:40 Tanaka Akira : > unimplemented method を rb_funcall で呼び出すと [BUG] になるようです。 > > pathname で Pathname#lchmod を実装するのに File.lchmod を呼び出そうとして > rb_funcall(rb_cFile, rb_intern("lchmod"), 2, mode, get_strpath(self)) > としたら、File.lchmod が unimplemented method な GNU/Linux では、以下のように > [BUG] vm_call0: unsupported method type (7) > となりました。 pathname を使わずに [BUG] を起こすなら例えば以下のようにできます。 % ./ruby -e ' class << File alias hash lchmod end {File => 0 } ' -e:5: [BUG] vm_call0: unsupported method type (7) ruby 1.9.3dev (2010-08-07 trunk 28891) [i686-linux] -- control frame ---------- c:0003 p:0028 s:0008 b:0006 l:000ff4 d:00078c EVAL -e:5 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:000ff4 d:000ff4 TOP --------------------------- -- Ruby level backtrace information ---------------------------------------- -e:5:in `
' -- C level backtrace information ------------------------------------------- ./ruby [0x8155332] ./ruby [0x818a7cf] ./ruby(rb_bug+0x36) [0x818a82a] ./ruby [0x814d630] ./ruby [0x814e404] ./ruby [0x814e357] ./ruby(rb_funcall+0xa2) [0x814e4ae] ./ruby(rb_hash+0x22) [0x80660bb] ./ruby [0x8066184] ./ruby(st_insert+0x10e) [0x80f31e4] ./ruby(rb_hash_aset+0x64) [0x8067833] ./ruby [0x814447c] ./ruby [0x81526b6] ./ruby [0x8152e8f] ./ruby [0x805b262] ./ruby(ruby_exec_node+0x1c) [0x805b36b] ./ruby(ruby_run_node+0x3b) [0x805b33f] ./ruby [0x8059d88] /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7505455] ./ruby [0x8059c81] [NOTE] You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html -- [田中 哲][たなか あきら][Tanaka Akira]