From: Suraj Kurapati Date: 2010-09-09T16:48:11+09:00 Subject: [ruby-core:32220] [Ruby 1.9-Feature#3809][Open] allow multiple set_trace_func() calls Feature #3809: allow multiple set_trace_func() calls http://redmine.ruby-lang.org/issues/show/3809 Author: Suraj Kurapati Status: Open, Priority: Normal Assigned to: Yukihiro Matsumoto, Category: core 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/ ---------------------------------------- http://redmine.ruby-lang.org