找到一个流浪的东西放入红宝石代码

Mic*_*erl 3 ruby ruby-on-rails

我们有一个相当大的rails应用程序,我在unicorn.log中启动了这个输出:

#:0xc644248>#:0xc644248>#:0xc4f06e4>#:0xc4f06e4>#:0xca481b4>#:0xca481b4>#:0xc53f604>#:0xc53f604>#:0xcd7a60c>#:0xcd7a60c>#:0xc5df2f8>#:0xc5df2f8>#:0xc69fd00>#:0xc69fd00>#:0xc560ae8>#:0xc560ae8>

在我看来,可能有一个杂散的Kernel.puts方法调用某处,但我一直在搜索几个小时,但找不到它.

任何人都有跟踪此类内容的提示吗?

Jef*_*tte 8

你可以修补补丁,并在调用时引发异常.您甚至可以使用输出字符串上的正则表达式匹配来调整它(看起来像递归对象转储).

module Kernel
  def puts (s)
    raise "puts called, check the backtrace for the source" if s =~ /#:[a-z0-9]>*/
  end
end
Run Code Online (Sandbox Code Playgroud)

也可能是它不是对看跌期权的调用,而是#inspect.