12


8

例外でRubyデバッガを起動する方法はありますか?

コードが例外をスローするたびにRubyデバッガーを起動する方法はありますか?

begin
  #do something
rescue
  debugger
end

「何かをする」部分で例外が発生した場合、デバッガーが起動するようにしたいと思います。 レスキューブロックの開始を全面的に追加するためにコードを変更する必要がないのは良いことです。

5 Answer


4


私はこのページに出くわしました:http://bashdb.sourceforge.net/ruby-debug.html#SEC70 [事後デバッグ]。 これを行う:

Debugger.start(:post_mortem => true)

行きたい場所に連れて行ってくれます。


3


require 'ruby-debug'
class Exception
  alias original_initalize initialize
  def initialize(*args)
    original_initalize(*args)
    debugger
  end
end

これにより、元の例外が実行され、デバッガーが呼び出されます


2


ruby-debugを使用している場合(そして、実際のように見える場合)、必要な例外にcatchPointsを設定できます。

 (rdbg) catch Exception

例えば


2


RubyMine 2.0.xで[実行]→ [ブレークポイントの表示]に移動し、[Ruby例外ブレークポイント]タブをクリックして、関心のある例外のタイプを追加します…​

NetBeansや他のRuby IDEにも似たようなものがあるはずです。

ところで、RubyMineは最高です!