Bug #13432
Updated by masato_hi (Masato Hi) over 7 years ago
以下のコードのように、Method#to_procで作成したProcオブジェクトをset_trace_funcに設定しSystemStackErrorを発生させるとRubyVMが停止する。 ``` def trace_method(event, file, line, id, binding, klass); end set_trace_func method(:trace_method).to_proc def stack_overflow infinite_loop stack_overflow infinite_loop end stack_overflow infinite_loop #=> RubyVM stops ``` 以下のコードではこの問題は発生しない。 ``` set_trace_func lambda {|event, file, line, id, binding, klass| } def stack_overflow infinite_loop stack_overflow infinite_loop end stack_overflow infinite_loop #=> stack level too deep (SystemStackError) ```