[MacRuby] #1214: Backtrace incorrect when exception is re-raised
#1214: Backtrace incorrect when exception is re-raised --------------------------------------+------------------------------------- Reporter: warpflyght@… | Owner: lsansonetti@… Type: defect | Status: new Priority: major | Milestone: Component: MacRuby | Keywords: --------------------------------------+------------------------------------- When re-raising an exception in MacRuby, the topmost frame in the backtrace becomes the location of the "raise" used to re-raise, not the location of the initial raise. Example program: {{{ #!ruby def demonstrate_bug raise "Should Originate On Line #{__LINE__}" rescue Exception raise end demonstrate_bug }}} Example output: {{{ $ ruby --version ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] $ ruby ./raise.rb ./raise.rb:2:in `demonstrate_bug': Should Originate On Line 2 (RuntimeError) from ./raise.rb:7 $ ruby1.9 --version ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10] $ ruby1.9 ./raise.rb ./raise.rb:2:in `demonstrate_bug': Should Originate On Line 2 (RuntimeError) from ./raise.rb:7:in `<main>' $ macruby --version MacRuby 0.11 (ruby 1.9.2) [universal-darwin10.0, x86_64] $ macruby ./raise.rb /private/tmp/./raise.rb:4:in `demonstrate_bug': Should Originate On Line 2 (RuntimeError) from /private/tmp/./raise.rb:7:in `demonstrate_bug' }}} Because the backtrace doesn't include frames above the rescue block, it isn't useful for debugging re-raised exceptions. The workaround is to capture the backtrace of the exception before re-raising (probably printing it out yourself). I'm using [https://github.com/MacRuby/MacRuby/commit/c59dc4930d2b2166ee1527bb4591459955... commit c59dc4930d2b2166ee1527bb45914599553c5bba] on a 64-bit machine running Mac OS X 10.6.7. -- Ticket URL: <http://www.macruby.org/trac/ticket/1214> MacRuby <http://macruby.org/>
#1214: Backtrace incorrect when exception is re-raised --------------------------------------+------------------------------------- Reporter: warpflyght@… | Owner: lsansonetti@… Type: defect | Status: closed Priority: major | Milestone: MacRuby 0.11 Component: MacRuby | Resolution: fixed Keywords: | --------------------------------------+------------------------------------- Changes (by lsansonetti@…): * status: new => closed * resolution: => fixed * milestone: => MacRuby 0.11 Comment: https://github.com/MacRuby/MacRuby/commit/f31d289b13ffc0253a67161984b797c056... -- Ticket URL: <http://www.macruby.org/trac/ticket/1214#comment:1> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby