From: Michael Hohn Date: 1999-07-13T11:44:46-06:00 Subject: [ruby-talk:00481] Modified debug.rb Hello again, over the weekend, I have made a modified version of the debug.rb file to also handle the "raise" event (from eval.c"). Given the file debug-test.rb: def foo(n) n / 4 end def bar(m) m*foo(m) end foo(10) bar('a') bar(122) I can do, for example: ruby -r mydebug debug-test.rb debug-test.rb:1:def foo(n) (rdb:-) c undefined method `/' for "a" from debug-test.rb:2:in `foo' from debug-test.rb:6:in `bar' from debug-test.rb:10 debug-test.rb:2: n / 4 (rdb:-) list 1 def foo(n) --> 2 n / 4 3 end 4 5 def bar(m) 6 m*foo(m) 7 end 8 9 foo(10) 10 bar('a') 11 bar(122) (rdb:-) where --> frame 2:debug-test.rb:2:in `foo' frame 1:debug-test.rb:6:in `bar' frame 0:debug-test.rb:10 (rdb:-) p n "a" (rdb:-) p m ./mydebug.rb:37:in `debug_eval':(eval):1:in `foo': undefined local variable or m ethod `m' for # nil (rdb:-) d at level 1 (rdb:-) w frame 2:debug-test.rb:2:in `foo' --> frame 1:debug-test.rb:6:in `bar' frame 0:debug-test.rb:10 (rdb:-) list 5 def bar(m) --> 6 m*foo(m) 7 end 8 9 foo(10) 10 bar('a') 11 bar(122) (rdb:-) p m "a" (rdb:-) p n ./mydebug.rb:37:in `debug_eval':(eval):1:in `bar': undefined local variable or m ethod `n' for # nil (rdb:-) d at level 0 (rdb:-) list 9 foo(10) --> 10 bar('a') 11 bar(122) (rdb:-) c debug-test.rb:2:in `foo': undefined method `/' for "a" (NameError) from debug-test.rb:6:in `bar' from debug-test.rb:10