From: "mame (Yusuke Endoh)" Date: 2012-05-27T01:00:18+09:00 Subject: [ruby-core:45267] [ruby-trunk - Bug #6490][Assigned] The 'printf' method in trace_func is not sent to 'stdout' variable in tracer.rb Issue #6490 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to keiju (Keiju Ishitsuka) ---------------------------------------- Bug #6490: The 'printf' method in trace_func is not sent to 'stdout' variable in tracer.rb https://bugs.ruby-lang.org/issues/6490#change-26847 Author: mfojtik (Michal Fojtik) Status: Assigned Priority: Normal Assignee: keiju (Keiju Ishitsuka) Category: lib Target version: 1.9.3 ruby -v: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0] Hi, lib/tracer.rb:189 def trace_func(event, file, line, id, binding, klass, *) # :nodoc: return if file == __FILE__ for p in @filters return unless p.call event, file, line, id, binding, klass end return unless Tracer::display_c_call? or event != "c-call" && event != "c-return" Tracer::stdout_mutex.synchronize do if EVENT_SYMBOL[event] stdout.printf("<%d>", $$) if Tracer::display_process_id? stdout.printf("#%d:", get_thread_no) if Tracer::display_thread_id? if line == 0 source = "?\n" else source = get_line(file, line) end printf("%s:%d:%s:%s: %s", file, line, klass || '', EVENT_SYMBOL[event], source) end end end As you see, the last 'printf' method is not sent to 'stdout' which unfortunately leads to have the output of Tracer print always to STDOUT. -- http://bugs.ruby-lang.org/