ConradIrwin / pry-rescue

Start a pry session whenever something goes wrong.
MIT License
848 stars 49 forks source link

#<NoMethodError: private method `eval' called for nil:NilClass> #117

Open stdedos opened 4 years ago

stdedos commented 4 years ago

May be related to https://github.com/ConradIrwin/pry-rescue/issues/103

On a big codebase, I am trying to capture only one call that may throw controllably. After I play with the exception, I would assume that continue would "continue-as-normal" i.e. "re-throw" the caught exception, and continue execution.

Instead, this happens:

/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/pry_instance.rb:563:in `select_prompt'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/repl.rb:95:in `read'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/repl.rb:68:in `block in repl'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/repl.rb:67:in `loop'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/repl.rb:67:in `repl'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/repl.rb:38:in `block in start'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/input_lock.rb:59:in `__with_ownership'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/input_lock.rb:77:in `with_ownership'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/repl.rb:38:in `start'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/repl.rb:13:in `start'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/pry_class.rb:200:in `start'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-byebug-3.7.0/lib/pry-byebug/pry_ext.rb:13:in `start_with_pry_byebug'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-0.12.2/lib/pry/core_extensions.rb:43:in `pry'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue.rb:58:in `block in enter_exception_context'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue.rb:212:in `with_program_name'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue.rb:56:in `enter_exception_context'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue/core_ext.rb:37:in `rescued'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue/core_ext.rb:17:in `rescue in block (2 levels) in rescue'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue/core_ext.rb:14:in `block (2 levels) in rescue'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue/core_ext.rb:13:in `catch'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue/core_ext.rb:13:in `block in rescue'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue/core_ext.rb:12:in `loop'
/spool/ruby/lib/ruby/gems/2.6.0/gems/pry-rescue-1.5.0/lib/pry-rescue/core_ext.rb:12:in `rescue'
<internal-stactrace-the-1-line-inside-pry-rescue-block>:1071:in `execute'