2013/12/16(月) [n年前の日記]
#3 [ruby] Ruby2.0.0+IDEでデバッガは使えないのかな
そろそろ Ruby 2.0.0 以降でも使えるデバッガ+IDEを見つけないといけない、ということなのだろうなと思えてきたので、この際、ちゃんと探してみようかなと。
◎ Aptana Studio 3 を試してみたり。 :
NetBeans なんぞ使ってるからあかんのや、他のIDEを使うべし、という状況なのかもしれないか…。では、Aptana Studio はどうだろう。ググってみたけど、解説されてるソレは、Ruby 1.9.x 時代の情報ばかり。うーん。コレもダメなんじゃないか? まあ、試しにインストールしてみるか…。
結論を先に書いておくと、Aptana Studio は NetBeans より酷くて、Ruby 1.8.7 でしかデバッガが使えなかったです。うーん。
とりあえず、導入手順をメモ。以下の記事を参考にインストール。
_フリーの高機能HTMLエディタ「Aptana Studio3」の日本語化と「Zen-Coding」のインストール方法 | 便利なツール
_Aptana Studioを使ったRuby/RoR開発
スタンドアローン版の、Aptana_Studio_3_Setup_3.4.2.exe をDLしてインストールしてみたり。
日本語化は、以下から pleiades.zip (1.4.x) をDLして、中に入っている features、plugins フォルダを、Aptana Studio インストールフォルダに上書きコピー。
_Pleiades - Eclipse プラグイン日本語化プラグイン | MergeDoc Project
Aptana Studio をインストールしただけではダメで、Ruby開発ツールもインストールしないといかんらしい。
_Ruby開発ツールのインストール - Aptana Studioを使ったRuby/RoR開発
インタプリタの指定を Ruby 2.0.0 にして、Rubyプロジェクトを作り。簡単なスクリプトを書いて、ブレークポイントを設定して、デバッグを実行してみた。…うむ。「ruby-debug が必要じゃい」と言われた。だからさあ、ソイツは Ruby 2.0.0 で動かんのだってば。
設定を眺めてたら、Ruby → デバッグ → エンジン、の項目で、デバッグエンジンを指定できるらしく。ここがデフォルトでは、「高速 Ruby デバッガー(ruby-debug)」になっていた。「Ruby組み込みデバッガー」もあるので、そちらに変更。
よく分からないエラーが大量に出た。ダメっぽいな…。
デフォルトの Ruby インタープリタを、Ruby 2.0.0 から 1.9.3 に切り替えてみた。これもダメ。組み込みデバッガではエラーが出るし、高速デバッガでも「ruby-debug が必要じゃ」と言われる。変だな。巷の解説記事では、ruby-debug19 が入ってれば動くと書いてあるのに…。
もしかして…。 Ruby 1.8.7 に切り替えてみた。うむ。これはブレークポイントで止まるな…。組み込みデバッガも、高速デバッガも使える。
すると、Aptana Studio 上でデバッガを使おうとすると、Ruby 1.8.7 までしか対応してない、ってことになるのかな。
_Eclipse Community Forums: Dynamic Languages Toolkit (DLTK) ≫ Debugging Ruby on Eclipse を眺めると、「Ruby 1.9 でデバッガ使えないよう」「この拡張の中身を見たけど、ハードコーティングされてるぞ。なんじゃこりゃ」云々のやり取りが。ダメっぽいな…。
結論を先に書いておくと、Aptana Studio は NetBeans より酷くて、Ruby 1.8.7 でしかデバッガが使えなかったです。うーん。
とりあえず、導入手順をメモ。以下の記事を参考にインストール。
_フリーの高機能HTMLエディタ「Aptana Studio3」の日本語化と「Zen-Coding」のインストール方法 | 便利なツール
_Aptana Studioを使ったRuby/RoR開発
スタンドアローン版の、Aptana_Studio_3_Setup_3.4.2.exe をDLしてインストールしてみたり。
日本語化は、以下から pleiades.zip (1.4.x) をDLして、中に入っている features、plugins フォルダを、Aptana Studio インストールフォルダに上書きコピー。
_Pleiades - Eclipse プラグイン日本語化プラグイン | MergeDoc Project
Aptana Studio をインストールしただけではダメで、Ruby開発ツールもインストールしないといかんらしい。
_Ruby開発ツールのインストール - Aptana Studioを使ったRuby/RoR開発
インタプリタの指定を Ruby 2.0.0 にして、Rubyプロジェクトを作り。簡単なスクリプトを書いて、ブレークポイントを設定して、デバッグを実行してみた。…うむ。「ruby-debug が必要じゃい」と言われた。だからさあ、ソイツは Ruby 2.0.0 で動かんのだってば。
設定を眺めてたら、Ruby → デバッグ → エンジン、の項目で、デバッグエンジンを指定できるらしく。ここがデフォルトでは、「高速 Ruby デバッガー(ruby-debug)」になっていた。「Ruby組み込みデバッガー」もあるので、そちらに変更。
よく分からないエラーが大量に出た。ダメっぽいな…。
デフォルトの Ruby インタープリタを、Ruby 2.0.0 から 1.9.3 に切り替えてみた。これもダメ。組み込みデバッガではエラーが出るし、高速デバッガでも「ruby-debug が必要じゃ」と言われる。変だな。巷の解説記事では、ruby-debug19 が入ってれば動くと書いてあるのに…。
もしかして…。 Ruby 1.8.7 に切り替えてみた。うむ。これはブレークポイントで止まるな…。組み込みデバッガも、高速デバッガも使える。
すると、Aptana Studio 上でデバッガを使おうとすると、Ruby 1.8.7 までしか対応してない、ってことになるのかな。
_Eclipse Community Forums: Dynamic Languages Toolkit (DLTK) ≫ Debugging Ruby on Eclipse を眺めると、「Ruby 1.9 でデバッガ使えないよう」「この拡張の中身を見たけど、ハードコーティングされてるぞ。なんじゃこりゃ」云々のやり取りが。ダメっぽいな…。
◎ Ruby 2.0.0対応のデバッガ情報 :
ググった範囲でメモ。
_Ruby 2.0 向けのデバッガー byebugについて - Qiita [キータ]
_[ruby-list:49324] Re: 1.9 から 2.0 への移行にあたって 困ったこととかありました?
_cldwalker/debugger
_2013/08/02/ruby2.0時代のデバッガはこれだ - ヽ(´・肉・`)ノログ
どうにも情報が少なくて。困った。
Ruby 2.0.0 上では、debugger、byebug というデバッガが使えるらしいので、一応どちらも入れてみたのだけど、ただ、どっちも、CUI なわけで。えー。21世紀にもなってそりゃねえよ、どんな拷問だよ、という気もするんですけど…。どうにかならんのかな。
_Ruby 2.0 向けのデバッガー byebugについて - Qiita [キータ]
_[ruby-list:49324] Re: 1.9 から 2.0 への移行にあたって 困ったこととかありました?
_cldwalker/debugger
_2013/08/02/ruby2.0時代のデバッガはこれだ - ヽ(´・肉・`)ノログ
どうにも情報が少なくて。困った。
Ruby 2.0.0 上では、debugger、byebug というデバッガが使えるらしいので、一応どちらも入れてみたのだけど、ただ、どっちも、CUI なわけで。えー。21世紀にもなってそりゃねえよ、どんな拷問だよ、という気もするんですけど…。どうにかならんのかな。
◎ emacs+デバッガの組み合わせもあるらしいけど。 :
Rubyのデバッガと、emacsを連携して、ということもできるらしいので調べてみたけど。それら解説記事も、ruby-debug の文字が書いてあったので、おそらく状況は、NetBeans や Aptana Studio と同じなんじゃないかと予想したり。
_EmacsをつかったRubyのデバッグ | アルミナ解析室 を眺めると、CUIのデバッガを呼び出して、ということができるらしいのだけど。ていうか、自分の ~/.emacs にも設定が書いてあって目が点になったのだけど。何時頃書いたんだろう。完全に忘れてる。
さておき、NTEmacs上で使ったら、CUIのデバッガらしきものは出てきたものの、操作方法が分からず。DOS窓上で使った時のように、nを押せば次に進む、というわけでもないような。うーん。もしかして、*NIX や Mac なら、スンナリ動くのかしら。
_EmacsをつかったRubyのデバッグ | アルミナ解析室 を眺めると、CUIのデバッガを呼び出して、ということができるらしいのだけど。ていうか、自分の ~/.emacs にも設定が書いてあって目が点になったのだけど。何時頃書いたんだろう。完全に忘れてる。
さておき、NTEmacs上で使ったら、CUIのデバッガらしきものは出てきたものの、操作方法が分からず。DOS窓上で使った時のように、nを押せば次に進む、というわけでもないような。うーん。もしかして、*NIX や Mac なら、スンナリ動くのかしら。
◎ eclipseを試した。 :
もしかすると eclipse + Aptana Studio の組み合わせなら使えたりしないかなと思えてきたので試してみたり。
インストール済みだった eclipse 4.2 を久しぶりに起動。更新の確認をしていったら、Android 関係の SDK も更新しないといかんと言われたので、この際それも更新。
気づいたら、eclipse 4.3 が公開されてたようで。せっかくだからそっちもインストール。 _日本語化 Eclipse 4.3 Kepler ケプラー | MergeDoc Project から、32bit版 Ultimate をDL。パスの短いフォルダに移動させて、展開先フォルダ名も短い名前にして解凍。そうしないと、パスが長過ぎて解凍できないファイルが出てくるので、ここは要注意ですぞ。
以下をインストール。
Ruby 1.9.3 で、高速デバッガを指定したけど、これはダメ。組み込みデバッガを指定したら…。お? ブレークポイントで止まった。
Ruby 2.0.0 にしてみた。組み込みデバッガを指定。…おお。ブレークポイントで止まってくれた。
全変数の中身が覗けないのが気になるけど、監視ウインドウを出して変数名を登録してみたら、登録した分だけは一応覗けた、ように見える。…でも書き換えができないな。うーん。
ステップ実行するとエラーが発生するのも気になる。どうも監視ウインドウの中に空行があるとエラーが出るらしい。
それでも、Ruby 2.0.0 を使っていて、GUIでデバッガを使えそうなのはありがたい。CUIでどうにかするしかないのかなと、かなり暗い気持ちになってたわけで。それと比べたら、はるかにマシ。
ということで、スタンドアローンの Aptana Studio はよろしくないけど、eclipse + Aptana Studio + RDT なら、もしかすると Ruby 2.0.0 でもデバッガが使えるのかもしれず。
_Bug 345976 - Debugger is looking for ruby-debug gem when it should look for ruby-debug19 を眺めると、Ruby 1.9.3 でも Ruby 2.0.0 でも debugger との組み合わせで動いてるという報告らしきものがあるのだけど。それが本当なら、ruby-debug-ide19 を要求してくるNetBeans を使うのを諦めて、eclipse に移行したほうがいいのだろうか。うーん。
インストール済みだった eclipse 4.2 を久しぶりに起動。更新の確認をしていったら、Android 関係の SDK も更新しないといかんと言われたので、この際それも更新。
気づいたら、eclipse 4.3 が公開されてたようで。せっかくだからそっちもインストール。 _日本語化 Eclipse 4.3 Kepler ケプラー | MergeDoc Project から、32bit版 Ultimate をDL。パスの短いフォルダに移動させて、展開先フォルダ名も短い名前にして解凍。そうしないと、パスが長過ぎて解凍できないファイルが出てくるので、ここは要注意ですぞ。
以下をインストール。
- Aptana Studio 3
- RDT(Ruby用の拡張)
- ADT(Android SDK用の拡張)
- ETEE
Ruby 1.9.3 で、高速デバッガを指定したけど、これはダメ。組み込みデバッガを指定したら…。お? ブレークポイントで止まった。
Ruby 2.0.0 にしてみた。組み込みデバッガを指定。…おお。ブレークポイントで止まってくれた。
全変数の中身が覗けないのが気になるけど、監視ウインドウを出して変数名を登録してみたら、登録した分だけは一応覗けた、ように見える。…でも書き換えができないな。うーん。
ステップ実行するとエラーが発生するのも気になる。どうも監視ウインドウの中に空行があるとエラーが出るらしい。
それでも、Ruby 2.0.0 を使っていて、GUIでデバッガを使えそうなのはありがたい。CUIでどうにかするしかないのかなと、かなり暗い気持ちになってたわけで。それと比べたら、はるかにマシ。
ということで、スタンドアローンの Aptana Studio はよろしくないけど、eclipse + Aptana Studio + RDT なら、もしかすると Ruby 2.0.0 でもデバッガが使えるのかもしれず。
_Bug 345976 - Debugger is looking for ruby-debug gem when it should look for ruby-debug19 を眺めると、Ruby 1.9.3 でも Ruby 2.0.0 でも debugger との組み合わせで動いてるという報告らしきものがあるのだけど。それが本当なら、ruby-debug-ide19 を要求してくるNetBeans を使うのを諦めて、eclipse に移行したほうがいいのだろうか。うーん。
◎ NetBeans上でも変数の値を書き換え出来なかった。 :
NetBeans 上で動作を確認してみたら、そちらも、値を見れるだけ、だったのですね…。もしかして、値を書き換えるのは、また別のツールなのだろうか。
大昔、MC68000使用のハード上で、ガンガン値を書き換えながら動作確認してた気もするんだけど、あの時使ってたツールは、一体何だったんだろう。アレをデバッガと呼ぶものと思い込んでたんだけどな…。
それはともかく、Ruby 1.9.3 上でも debugger その他をインストールしておかしくなってしまったので、gem uninstall 〜 で、ごっそりアンインストール後、ruby-debug-base19等をインストールし直し。以下のページが参考になりました。ありがたや。
_Ruby1.9.3の実行環境とデバッグ環境の整備 | Dear プログラマー
_Windows7でRails3 + NetBeans + デバッガー が動かない - 同じにやっても動かない
_exabugsの雑記帳 Eclipse(Aptana3) で Ruby1.9.3 をデバッグする
lib/ruby/gems/1.9.1/gems/ruby-debug-ide19-0.4.12/lib/ruby-debug/xml_printer.rb の修正を忘れて、変数ウインドウを表示すると途端に落ちるという不具合に見舞われ、首を傾げてました。
それにしても、NetBeans 上のソレって、やたらフリーズするなあ…。ruby-debug*19 は、もうメンテナンスされてないという話も見かけたし。どうしたもんか。
大昔、MC68000使用のハード上で、ガンガン値を書き換えながら動作確認してた気もするんだけど、あの時使ってたツールは、一体何だったんだろう。アレをデバッガと呼ぶものと思い込んでたんだけどな…。
それはともかく、Ruby 1.9.3 上でも debugger その他をインストールしておかしくなってしまったので、gem uninstall 〜 で、ごっそりアンインストール後、ruby-debug-base19等をインストールし直し。以下のページが参考になりました。ありがたや。
_Ruby1.9.3の実行環境とデバッグ環境の整備 | Dear プログラマー
_Windows7でRails3 + NetBeans + デバッガー が動かない - 同じにやっても動かない
_exabugsの雑記帳 Eclipse(Aptana3) で Ruby1.9.3 をデバッグする
lib/ruby/gems/1.9.1/gems/ruby-debug-ide19-0.4.12/lib/ruby-debug/xml_printer.rb の修正を忘れて、変数ウインドウを表示すると途端に落ちるという不具合に見舞われ、首を傾げてました。
class String def is_binary_data? ( self.count( "^ -~", "^\r\n" ).fdiv(self.size) > 0.3 || self.index( "\x00" ) ) unless empty? end endを追加する修正をしておかないといかんのですな…。
それにしても、NetBeans 上のソレって、やたらフリーズするなあ…。ruby-debug*19 は、もうメンテナンスされてないという話も見かけたし。どうしたもんか。
この記事へのツッコミ
[ ツッコミを読む(1) | ツッコむ ]
以上です。
非常に参考にさせていただきました。
Eclipse + Ruby2.0.0 + RDT + 内蔵デバッガはうまくいきましたが、
唯一、メソッドのキーワード引数を認識してくれず、アウトライン機能がうまくいかなかったので諦めました。どうもRDTは最近の更新が止まっているようで、
使い続けるのは少々ためらいを感じました。
NetBeans(8.0.1) + Ruby2.0.0 + Ruby and Rails Pluginは、デバッガとしてインストールするgemを
ruby-debug-ide-0.4.22.gem(お尻に19とか書かれていないやつ)
debase-0.0.9.gem(2.0用らしいです。ruby-debug-ide-0.4.22/lib/ruby-debug-ide.rbの8行目でご指名されてます。)
とすれば、ブレークポイントで止まって変数の中身を見る事ができています。
(xml_printer.rbの追記は相変わらず必要みたいですが。)
私のような迷える子羊さん達の参考になれば、と投稿させていただきました。