繁体   English   中英

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

[英]Why is my backtrace being filtered?

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

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

这些行无效。

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

我正在使用JRuby,Rails 4.1,并且有问题的库很少

进一步解释

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

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. 这是在生产中发生的吗?
  2. 你能提供更多关于回溯的背景吗? 通过跳过线条,你的意思是一些回溯实际上是可见的,但有些不是?
  3. 如果开发,你知道哪个宝石正在提出例外吗? 如果是这样,打开它(打开打包),并使用pry ,在backtrace的感兴趣的行之前放置一个binding.pry语句。 您将可以看到什么是在异常的时间去上,你就能cd到进一步的上下文,如果必要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM