Ruby-debugger

提供:Dev Guides
移動先:案内検索

Ruby-デバッガー

言語がどれほど簡単に使用できるかは問題ではありません。通常、数行以上の長さの場合、いくつかのバグが含まれています。 バグに対処するために、Rubyの標準ディストリビューションにはデバッガーが含まれています。

Rubyデバッガーを起動するには、コマンドラインオプション_-r debug_を使用してデバッグライブラリをロードします。 デバッガーは、実行可能コードの最初の行の前で停止し、ユーザーコマンドの入力を要求します。

使用構文

rubyデバッガーを使用するための使用構文は次のとおりです-

$ ruby -r debug filename[, ...]

Rubyデバッガーコマンド

以下に、プログラムのデバッグ中に使用できるコマンドの完全なリストを示します。 ここでは、完全なキーワードを使用してコマンドを指定する必要はありません。[…​]内にある部分はオプションです。

Sr.No. Command & Description
1 *b[reak] [< file
class>:]< line

method>*

ブレークポイントをある位置に設定します。 ブレークポイントは、デバッグのためにプログラムの実行を一時停止する場所です。

2

wat[ch] expression

ウォッチポイントを設定します。

3 *cat[ch] (exception

off)*

キャッチポイントを例外に設定します。

4

b[reak]

ブレークポイントとウォッチポイントを表示します。

5

del[ete] [n]

ブレークポイントを削除します。

6

disp[lay] expression

_expression_の値を表示します。

7

undisp[lay] [ n]

nの表示を削除します

8

c[ont]

実行を継続します。

9

s[tep] [ n]

メソッドにステップインする次のn行を実行します。

10

n[ext] [ n]

メソッドをステップオーバーする次のn行を実行します。

11

w[here]

スタックフレームを表示します

12

f[rame]

どこの同義語。

13
*l[ist][←

n- m>]*

nからmまでのソース行を表示します。

14

up [ n]

スタックフレーム内でnレベル上に移動します。

15

down [ n]

スタックフレーム内でnレベル下に移動します。

16

fin[ish]

現在のメソッドの実行を終了します。

17 *tr[ace] [on

off]*

トレースモードのオンとオフを切り替えます。

18

q[uit]

デバッガを終了します。

19

v[ar] g[lobal]

グローバル変数を表示します。

20

v[ar] l[ocal]

ローカル変数を表示します。

21

v[ar] i[instance] object

_object_のインスタンス変数を表示します

22

v[ar] c[onst] object

_object_の定数を表示します。

23

m[ethod] i[instance] object

_object_のインスタンスメソッドを表示します。

24
*m[ethod] _class

module_*

_classまたはmodule_のインスタンスメソッドを表示します。

25

th[read] l[ist]

スレッドを表示します。

26

th[read] c[ur[rent]]

現在のスレッドを表示します。

27

th[read] n

指定されたスレッドを停止します。

28

th[read] stop >

th [read] nの同義語。

29

th[read] c[ur[rent]] n>

th [read] nの同義語

30

th[read] resume >

スレッドnを再開します

31

p expression

_expression_を評価します

32

h[elp]

ヘルプメッセージを表示します

33

everything else

評価します。

デバッグする必要がある次のファイル_hello.rb_を考慮してください-

#!/usr/bin/env ruby
class Hello
   def initialize( hello )
      &commat;hello = hello
   end
   def hello
      &commat;hello
   end
end

salute = Hello.new( "Hello, Mac!" )
puts salute.hello

キャプチャされた1つのインタラクティブセッションを次に示します。 与えられたコマンドは太字で書かれています-

[root@ruby]# ruby -r debug hello.rb
Debug.rb
Emacs support available.

hello.rb:3:class Hello
(rdb:1) v l
   salute => nil
(rdb:1) b 10
Set breakpoint 1 at hello.rb:10
(rdb:1) c
Hello, Mac!
[root&commat;ruby]#