From: "mame (Yusuke Endoh)" Date: 2012-11-20T03:18:54+09:00 Subject: [ruby-core:49604] [ruby-trunk - Bug #6490] The 'printf' method in trace_func is not sent to 'stdout' variable in tracer.rb Issue #6490 has been updated by mame (Yusuke Endoh). Assignee changed from mame (Yusuke Endoh) to zzak (Zachary Scott) Looks good to me. Zachary, could you please apply it to trunk? I guess that Keiju-san does not read English mail (bad!), so I ask him to check your commit in Japanese. ��������������������� Tracer ��� stdout.printf ������������������������ printf ������������������������������������������������ ��������������������������������������������������������������������������������������������������������������������������������������������������������� -- Yusuke Endoh ---------------------------------------- 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-33120 Author: mfojtik (Michal Fojtik) Status: Assigned Priority: Normal Assignee: zzak (Zachary Scott) 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/