From: "mame (Yusuke Endoh)" Date: 2012-11-09T18:00:13+09:00 Subject: [ruby-core:49144] [ruby-trunk - Feature #3809] allow multiple set_trace_func() calls Issue #3809 has been updated by mame (Yusuke Endoh). Description updated Target version set to next minor ---------------------------------------- Feature #3809: allow multiple set_trace_func() calls https://bugs.ruby-lang.org/issues/3809#change-32689 Author: sunaku (Suraj Kurapati) Status: Assigned Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: core Target version: next minor =begin Hello, The current set_trace_func() method in Ruby 1.8 and 1.9 cannot be safely called multiple times because each call overwrites the current trace_func. Please consider adding a mechanism, such as the multitrace library[1], to allow users to attach multiple tracing functions simultaneously to Ruby. An alternative to the multitrace library[1] is to add some new methods: * attach_trace_func(proc) #=> proc * detach_trace_func(proc) #=> proc When you call attach_trace_func(), it will register your tracing function and return it. You can pass the same tracing function later to detach_trace_func() to unregister it. Here is a convoluted example: detach_trace_func(attach_trace_func(proc {})) Here is a more realistic example: foo = proc {} bar = proc {} attach_trace_func foo # ... attach_trace_func bar # ... detach_trace_func foo detach_trace_func bar Thanks for your consideration. [1]: http://codeidol.com/other/rubyckbk/Testing,-Debugging,-Optimizing,-and-Documenting/Running-Multiple-Analysis-Tools-at-Once/ =end -- http://bugs.ruby-lang.org/