Actions
Bug #1588
closedブロックの中断でset_trace_funcのreturnイベントが呼び出されない
Description
=begin
set_trace_funcでフックを設定した時に、ブロック中のbreakや例外で脱出をすると
'return'や'c-return'イベントが発生せずフックが呼び出されません。
$ cat tracefunc.rb
set_trace_func(proc {|event, file, line, id, binding, klass|
puts "'#{id}' event: #{event}" unless /line/ =~ event
})
1.times do
break
end
$ ./ruby1.9 -v tracefunc.rb
ruby 1.9.2dev (2009-06-08 trunk 23650) [i386-darwin9.7.0]
'set_trace_func' event: c-return
'times' event: c-call
1.8ではc-returnが呼ばれます。
$ ruby -v tracefunc.rb
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9]
'times' event: c-call
'times' event: c-return
この影響でプロファイラでの計測が正常に出来ません。
=end
Actions
Like0
Like0Like0