Project

General

Profile

Bug #13432

Updated by nobu (Nobuyoshi Nakada) over 2 years ago

以下のコードのように、Method#to_procで作成したProcオブジェクトをset_trace_funcに設定しSystemStackErrorを発生させるとRubyVMが停止する。 

 ```ruby ``` 
 def trace_method(event, file, line, id, binding, klass); end 

 set_trace_func method(:trace_method).to_proc 

 def stack_overflow 
   stack_overflow 
 end 

 stack_overflow #=> RubyVM stops 
 ``` 

 以下のコードではこの問題は発生しない。 

 ```ruby ``` 
 set_trace_func lambda {|event, file, line, id, binding, klass| 
 } 

 def stack_overflow 
   stack_overflow 
 end 

 stack_overflow #=> stack level too deep (SystemStackError) 
 ``` 

Back