From: nagachika Date: 2011-06-16T00:22:52+09:00 Subject: [ruby-dev:43827] Re: redmine issue: 3660 [Re: redmine] 近永と申します。 ちょうど ruby -rtracer で Tracer.on にならないのに気がついて報告しようとしていたところでした。 便乗させていただきます。 > それと, もうひとつ気がついたのが, 最新版のrubyでは, > > # ruby -rtracer gg.rb > > でトレースメッセージがでるはずなのに出なくなっていることです. -- snip -- > ruby 1.9.2 p180 では以下のような形式で > > [":29:in `require'", ":29:in `require'"] > > 最新版では以下のような形式になっています. > > ["/usr/local/apps/rubyware/ruby-1.9.3-20110325/lib/ruby/1.9.1/rubygems/custom_require.rb:42:in `require'", "/usr/local/apps/rubyware/ruby-1.9.3-20110325/lib/ruby/1.9.1/rubygems/custom_require.rb:42:in `require'"] おそらく r30538 で gem_prelude が廃止されたあたりからの変化だと思います。 test_tracer.rb のテストにもこの時 --disable-gem が追加されていたため遮蔽されていたようです。 そこで、とりあえず caller から除外する条件を から rubygems/custom_require.rb: を 含むと変更すると直るのですが、いかにも場当たり的でいずれまた壊してしまいそうです。 -r オプション経由で実行されていることを Ruby スクリプトから知る方法は何かないものでしょうか。