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