yarv-dev:777
From: Minero Aoki <aamine loveruby.net>
Date: Mon, 09 Jan 2006 17:06:11 +0900 (JST)
Subject: [yarv-dev:777] open> block made by Method#to_proc
青木です。
以下のプログラムで SEGV します。
~/c/yarv/BUGS/optparse-hash % cat main.rb
def block
Object.method(:new).to_proc
end
b = block()
b.call
~/c/yarv/BUGS/optparse-hash % ../../ruby -v main.rb
ruby 1.9.0 (2005-11-18) [x86_64-linux]
YARVCore 0.3.3 (rev: 356) [opts: ]
zsh: 3784 abort (core dumped) ../../ruby -v main.rb
スタックトレースです。
(gdb) run main.rb
Starting program: /home/aamine/c/yarv/ruby main.rb
[Thread debugging using libthread_db enabled]
[New Thread 182902579264 (LWP 3780)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 182902579264 (LWP 3780)]
lfp_set_special_cref (lfp=0x2a95ee2050, cref=182903838864) at vm.c:813
813 scref = *pv;
(gdb) bt
#0 lfp_set_special_cref (lfp=0x2a95ee2050, cref=182903838864) at vm.c:813
#1 0x0000000000478299 in th_invoke_proc (th=0x666f90, proc=0x66b930, argc=0,
argv=0x2a95ee2038) at vm.c:633
#2 0x000000000047c386 in call_cfunc (func=0x47e550 <proc_call>,
recv=182903831664, len=1, argc=-1779556272, argv=0xffffffff)
at call_cfunc.h:24
#3 0x000000000047a40b in th_eval (th=0x666f90, initial=4294967295)
at insns.def:1335
#4 0x000000000047c006 in th_eval_body (th=0x666f90) at vm.c:1273
#5 0x0000000000414649 in ruby_exec_internal () at eval.c:271
#6 0x0000000000414673 in ruby_exec () at eval.c:283
#7 0x00000000004146ad in ruby_run () at eval.c:300
#8 0x0000000000411729 in main (argc=2, argv=0x7fbffff5b8, envp=0x1)
at main.c:36
lfp[-1] が 0x1 になってます。
--
青木峰郎
--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml
-> 777 2006-01-09 17:06 [aamine loveruby.net ] open> block made by Method#to_proc 779 2006-01-09 18:25 ┗[aamine loveruby.net ] Re: block made by Method#to_proc 784 2006-01-29 11:51 ┗[ko1 atdot.net ] fixed> Re: block made by Method#to_proc 798 2006-02-02 17:40 ┗[aamine loveruby.net ] close> Re: block made by Method#to_proc