なひです。

patchが出せません。どなたかわかるようでしたらお願いします。^^;

1.6と1.7で、trace_funcで呼び出したcaller(0)の出力が
異なる場合があります。なひが把握しているのは、
トップレベルでNameErrorを起こした場合です。

・set_trace_funcの中でcaller(0)
・トップレベルでNameErrorを起こす
・現行1.7。

$ cat trace.rb
set_trace_func proc { |*arg|
  p arg
  p caller(0)
}
foo

$ ruby -v trace.rb | head -3
trace.rb:5: undefined local variable or method `foo' for #<Object:0xa0499b0> (NameError)
ruby 1.6.8 (2002-11-09) [i386-cygwin]
["line", "trace.rb", 5, nil, #<Binding:0xa039c90>, false]
["trace.rb:3", "trace.rb:4", "trace.rb:5"]

$ ruby17 -v trace.rb | head -3
trace.rb:5: undefined local variable or method `foo' for #<Object:0x10109620> (NameError)
ruby 1.7.3 (2002-11-07) [i386-cygwin]
["line", "trace.rb", 5, nil, #<Binding:0x100f8628>, false]
["trace.rb:3", "trace.rb:2"]
$

1.6では["trace.rb:3", "trace.rb:4", "trace.rb:5"]
1.7では["trace.rb:3", "trace.rb:2"]

という違いです。