本を読む

読書やコンピュータなどに関するメモ

Ruby 1.9.0で付属のdebug.rbがエラーになる件

% cat hoge.rb
puts 'Hello World'
% /opt/ruby/bin/ruby -r debug hoge.rb
Debug.rb
Emacs support available.

/opt/ruby/lib/ruby/1.9.0/debug.rb:221:in `debug_command': undefined method `callcc' for #<DEBUGGER__::Context:0xb7bb4bb4> (NoMethodError)
        from /opt/ruby/lib/ruby/1.9.0/debug.rb:690:in `trace_func'
        from /opt/ruby/lib/ruby/1.9.0/debug.rb:904:in `block (1 levels) in <class:DEBUGGER__>'
        from hoge.ruby:1:in `<main>'
%

 Rubyのソースのうち、continuationがext送りになっているようだ。ext/Setupに手で「continuation」という行を追加して(コメントアウトされているわけではない)configureからやり直したら、無事動いた(この段落は2007-12-29追記)。

(以下、元の誤った内容の残骸)

 とりあえず7文字追加したら動いたっぽい。んなわきゃない、こりゃただのコメントアウトだ。あとで考え直す。

--- lib/ruby/1.9.0/debug.rb.bak	2007-06-18 16:55:45.000000000 +0900
+++ lib/ruby/1.9.0/debug.rb	2007-12-27 18:58:21.000000000 +0900
@@ -218,7 +218,7 @@ class Context
   def debug_command(file, line, id, binding)
     MUTEX.lock
     unless defined?($debugger_restart) and $debugger_restart
-      callcc{|c| $debugger_restart = c} 
+      Kernel#callcc{|c| $debugger_restart = c} 
     end
     set_last_thread(Thread.current)
     frame_pos = 0

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/329-14d915c4

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad