あるコードをデバッグしているときに、ある行をステップオーバーして、「うーん、そこにステップインしたかった」と思うことがあります。または、評価される式を入力して (私は常に「autoeval」をオンにしています)、次のように考えます。
私が見つけた限りでは、これは 1.8.7 では不可能です。ruby-debug
1.9.3 でもありませんdebugger
。これをサポートする他の Ruby デバッガーはありますか?
「debug」コマンドを介してネストされたデバッグを可能にする、trepanningと呼ばれるruby-debugの書き直しがあります。https://github.com/rocky/rb-trepanning/wiki/Nested-debuggingを参照してください。
残念ながら、根本的な問題はMRI 1.9ランタイムシステムにあるため、パッチを適用したMRI Ruby 1.9.3(または1.9.2)が必要です。インストール方法については、 https://github.com/rocky/rb-trepanning/wiki/How-to-install-rb-trepanningを参照してください。
もちろん、あなたが求めたすべてのことを行うことができます。
デバッグ セッション中に、次の操作を行います。
(rdb:1)s # steps into method
(rdb:1)l # list current line
(rdb:1)obj.method # eval expression
入力したばかりの式に足を踏み入れることはできませんが、私が知る限り
ダーティ:
(rdb:1)def someobj.some_method_name
(rdb:2)* debugger
(rdb:3)* my.expression_i_want_to_step_in
(rdb:4)* end
(rdb:5)someobj.some_method_name
(rdb:1) # this should be the new session at my.expression_i_want_to_step_in - untested
ruby-debugの簡単なまとめ