Backport #1593
Updated by jeremyevans0 (Jeremy Evans) over 4 years ago
=begin Hi, I have a code snippet which uses eval to execute a Ruby fragment, protected with begin...rescue. If I attempt to display the exception backtrace within the rescue branch, the topmost line of context is missing. For instance: except.rb: def foo() bar() end def bar() baz() end def baz() raise "Boom" end puts "Direct call." begin foo rescue => e puts e.backtrace end puts "\nThrough eval." begin eval "foo" rescue => e puts e.backtrace end Running this code produces: \lib>except.rb Direct call. /lib/except.rb:10:in `baz' /lib/except.rb:6:in `bar' /lib/except.rb:2:in `foo' /lib/except.rb:15 Through eval. /lib/except.rb:22 /lib/except.rb:6:in `bar' /lib/except.rb:2:in `foo' (eval):1 Note that in the eval case, `baz' is not present in the backtrace. =end