5

Rails で Ruby デバッガーをステップ実行するとき、Rails のネイティブ コードをすべてスキップして、自分が書いたコードだけで停止させるにはどうすればよいですか?

(つまり、このように見えるすべてのコードをスキップします)

/Users/jon/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/module/remove_method.rb:4
remove_method(method)
(rdb:1) s
[76, 85] in /Users/jon/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/class/attribute.rb
   76          def self.#{name}?() !!#{name} end
   77  
   78          def self.#{name}=(val)
   79            singleton_class.class_eval do
   80              remove_possible_method(:#{name})
=> 81              define_method(:#{name}) { val }
   82            end
   83  
   84            if singleton_class?
   85              class_eval do
/Users/jon/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/class/attribute.rb:81
define_method(:#{name}) { val }
(rdb:1) s
[79, 88] in /Users/jon/.rvm/gems/ruby-1.9.3-p0/gems/activesupport-3.2.1/lib/active_support/core_ext/class/attribute.rb
   79            singleton_class.class_eval do
   80              remove_possible_method(:#{name})
   81              define_method(:#{name}) { val }
   82            end
   83  
=> 84            if singleton_class?
   85              class_eval do
   86                remove_possible_method(:#{name})
   87                def #{name}
   88                  defined?(@#{name}) ? @#{name} : singleton_class.#{name}

ありがとう!

4

3 に答える 3

1

あなたの質問を正しく理解していれば、あなたが探しているのはこのようなものだと思います。Rails のメソッドを使用している場合は、Rails コードにアクセスしないでください。これがお役に立てば幸いです。

于 2012-03-28T19:42:38.637 に答える
1

ときどき Rails コードにステップインする場合は、コンソールを押してください。cこれにより、設定した次のブレークポイントに移動します (または、ループ内にいる場合は同じブレークポイントに戻ります)。または、ブレークポイントが残っていない場合は、単にページ要求を終了します。

于 2012-03-28T19:54:56.713 に答える
0

3 つの主要なデバッグ コマンドがあります。

  • c - 続行
  • s - ステップ イン
  • n - 次/ステップオーバー

あなたが探しているのは「n」です。これにより、残りのコードを含むコードまたは ruby​​ gem に入ることなく、メソッドのリストを調べることができます。

于 2012-11-05T16:29:59.243 に答える