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 <mame / tsg.ne.jp>
----------------------------------------
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/