14

Rails アプリで Ruby デバッガーを使用しようとしています。

スタック トレースを表示するには、(rdb:1) プロンプトでどのコマンドを入力する必要がありますか? 試してみましbacktraceたが、一番上のフレームしか一覧表示されません。

4

3 に答える 3

35

http://apidock.com/ruby/Kernel/caller

caller(0)  # Returns the stack trace, omitting 0 initial entry.
于 2014-07-01T16:24:32.907 に答える
1

Pry gem にはpry-stack_explorerスタックを表示できるプラグインがあります

例: フレーム間の移動

[8] pry(J)> show-stack

Showing all accessible frames in stack:
--
=> #0 [method]  c <Object#c()>
   #1 [block]   block in b <Object#b()>
   #2 [method]  b <Object#b()>
   #3 [method]  alphabet <Object#alphabet(y)>
   #4 [class]   <class:J>
   #5 [block]   block in <main>
   #6 [eval]    <main>
   #7 [top]     <main>
[9] pry(J)> frame 3

Frame number: 3/7
Frame type: method

From: /Users/john/ruby/projects/pry-stack_explorer/examples/example.rb @ line 10 in Object#alphabet:

     5:
     6: require 'pry-stack_explorer'
     7:
     8: def alphabet(y)
     9:   x = 20
 => 10:   b
    11: end
    12:
    13: def b
    14:   x = 30
    15:   proc {
[10] pry(J)> x
=> 20

さらに、Ruby デバッガーにはない多くの機能を備えています。pryそのプラグインを試すことをお勧めします

于 2013-04-10T18:39:02.300 に答える