6

私はいくつかのJRubyコードに精通しており、コードにブレークポイントを設定してコマンドラインから(通常どおり)実行し、その時点でデバッガーに割り込むことができるようにしたいと考えています。JRubyをデバッガーに侵入させるためにコードに入れることができるものはありますか?

jruby -r debug foo.rb(通常の代わりに)実行jruby foo.rbしてから、でブレークポイントを設定してb bar.py:98から続行してみました。しかし、デバッガーは例外が発生するたびに停止し、興味のあるコード行に到達する前に多くの例外があるようです。「デバッガーへの侵入」を配置できるようにしたいと思います。コード内の行を実行jruby foo.rbして、デバッガーが最初に停止する場所をその行にします。

import pdb;pdb.set_trace()(つまり、Pythonで同等のRuby / JRubyを探しています。)

4

3 に答える 3

5

Netbeans Ruby IDEを試すことができます。これには、JRubyインタープリターとデバッグツールが組み込まれており、IDEで直接視覚的にデバッグできます。
IDEを使用するオプションがない場合は、de debuggemをJRubyディストリビューションにインストールし、debuggerコマンドを使用して使用してください。

  1. ruby-debug-base-0.10.3.1-java.gemをdebug-commons からローカルディレクトリに手動でダウンロードします。
  2. GemをJRubyGemリポジトリにインストールします。
    jruby -S gem install -l ruby-debug-base-0.10.3.1-java.gem
  3. ruby-debuggemをインストールします。
    jruby -S gem install --ignore-dependencies ruby-debug

これdebuggerでコマンドが機能するはずです。

# test.rb
require 'rubygems'
require 'ruby-debug'
debugger
# run like this:
jruby --debug -S rdebug test.rb

Netbeans wikirdebug wiki、 JRubywikiの詳細

于 2010-03-24T13:49:26.697 に答える
1
require 'rubygems'
require 'ruby-debug'
debugger
于 2010-03-24T00:09:28.880 に答える
1

Windows7でJRuby1.7.3(1.9.3p385)を使用しています。

人々が言うことに反して、JRubyがプリインストールされたバージョンのruby-debugはないようです。ただし、を実行してインストールしましたgem install ruby-debug。次のように、コードでデバッガーを起動します。

require 'rubygems'
require 'ruby-debug'
debugger

debuggerブレークポイントが必要なすべての場所でメソッドを呼び出す必要があります。

私は次のようなコードを実行しました:

jruby --debug program.rb

この--debugオプションはオプションですが、オプションがないと、「トレース(set_trace_funcなど)は--debugフラグなしですべてのイベントをキャプチャすることはできません」という警告が表示されます。

ここでの別の回答は-S rdebug、コマンドラインのオプションを使用しました。このオプションはデバッグには必要ありません。これにより、プログラムの最初からデバッガーが起動します。メソッドを呼び出すだけdebuggerで、必要なときにデバッガーを起動できます。そのオプションは使用しないでください。

ruby-debug gemがなくても、 debug.rbを介してJRubyに組み込まれているある種の基本的なデバッグがあるようです。ファイルに書き込むだけload 'debug.rb'で、デバッガーを起動できます。いくつかのジャンクメッセージ(「Debug.rb」と「Emacsサポートが利用可能です。」)を出力しますが、機能しているようです。

于 2013-04-17T02:28:35.237 に答える