为什么我的回溯被过滤了?

时间:2014-08-13 06:02:19

标签: ruby-on-rails ruby jruby

我在第三方库中遇到异常。由于某种原因,回溯会跳过很多行。我把它放在初始化器中了:

Rails.backtrace_cleaner.remove_silencers!
Rails.backtrace_cleaner.remove_filters!

这些行无效。

还有什么可能会影响回溯的内容?是否有我可以检查的全局对象,或者我可以在可疑宝石中搜索的方法调用?

我正在使用JRuby,Rails 4.1,有问题的库是dullard

进一步说明

这是一个回溯正常工作的例子。这段代码......

def a
  raise "i am in a"
end

def b
  puts "i am in b"
  a
end

def c
  puts "i am in c"
  b
end

c

导致此输出...

➔ ruby exceptiontest.rb
i am in c
i am in b
exceptiontest.rb:2:in `a': i am in a (RuntimeError)
    from exceptiontest.rb:7:in `b'
    from exceptiontest.rb:12:in `c'
    from exceptiontest.rb:15:in `<main>'

我的问题是,我正在获得此输出...

➔ ruby exceptiontest.rb
i am in c
i am in b
exceptiontest.rb:2:in `a': i am in a (RuntimeError)
    from exceptiontest.rb:15:in `<main>'

1 个答案:

答案 0 :(得分:0)

  1. 这是在生产中发生的吗?
  2. 您能否提供有关回溯的更多背景信息?通过跳过线条,你的意思是某些回溯实际上是可见的,但有些不是吗?
  3. 如果开发,你知道哪个gem正在提出异常吗?如果是这样,打开它(打开打包),并使用pry,在回溯的感兴趣行之前放置一个binding.pry语句。您将能够看到异常时发生的事情,如果有必要,您将能够cd进一步了解。