From: "NAKAMURA, Hiroshi" Date: 1999-06-21T20:04:19+09:00 Subject: [ruby-dev:7154] [Patch] debug.rb raises NameError; undefined method `+' for nil なひです. ruby本体は小松さんに任せて...^^; debug.rbで@frame_posがnilの時にdownとすると,nil.+でコケます. 自分がどのframeに居るかいつも把握してれば不要なんでしょうけれど, なひはどうも忘れっぽくて...debuggerから抜けられて泣きました.^^; # [ruby-dev:6538]で言ってたのは,たぶんこれだと思います. / / / ちょっと考えてみたこと. 1 [1, 2, 3].each do |item| 2 p item 3 end 現在のdebug.rbを使って,毎回line: 2で止めるには, breakpointを設定するしかないですよね. single stepで止まってくれたら嬉しいなー,と思ったんですが, debug.rbをいじるだけでは無理な感じがします. trace_funcを,'line'じゃないeventで呼んでくれないかなー,なんて... で,おそるおそるeval.cを覗いて...断念しました.^^; / / / Index: ruby/lib/debug.rb =================================================================== RCS file: /home/cvs/ruby/lib/debug.rb,v retrieving revision 1.1.1.2.2.2 diff -u -r1.1.1.2.2.2 debug.rb --- ruby/lib/debug.rb 1999/05/25 08:26:20 1.1.1.2.2.2 +++ ruby/lib/debug.rb 1999/06/21 10:00:03 @@ -130,6 +130,9 @@ else lev = 1 end + unless @frame_pos + @frame_pos = @frames.size - 1 + end if lev >= @frames.size or @frame_pos and @frame_pos+lev >= @frames.size STDOUT.print "at stack bottom\n" @frame_pos = nil