要約
実行トレース出力をとる機能を提供するクラスです。
目次
- 特異メソッド
- インスタンスメソッド
- 定数
特異メソッド
- add_filter(proc)[permalink][rdoc][edit]
- add_filter {|event, file, line, id, binding, klass| .... }
- 
トレース出力するかどうかを決定するフィルタを追加します。何もフィルタを与えない場合はすべての行についてトレース情報が出力されます。与えられた手続き(ブロックまたはProcオブジェクト)が真を返せばトレースは出力されます。 フィルタは複数追加でき、そのうち一つでも偽を返すとトレースの出力は抑制されます。 - [PARAM] proc:
- トレース出力するかどうかを決定する手続きオブジェクトを指定します。通常、true か falseを返す必要があります。
 フィルタ手続きは引数として event, file, line, id, binding, klass の 6 つをとります。 Kernel.#set_trace_func で指定するものとほぼ同じです。 フィルタ手続きのパラメータ- event
- 
イベントを表す文字列。以下の種類がある。カッコ内は tracer の出力での表記。 * line (-) ある行を実行 * call (>) メソッド呼び出し * return (<) メソッドからのリターン * class (C) クラスコンテキストに入った * end (E) クラスコンテキストから出た * raise 例外が発生した * c-call Cで記述されたメソッドが呼ばれた * c-return Cで記述されたメソッドからreturn 
- file
- 
現在処理しているファイルの名前 
- line
- 
現在処理している行番号 
- id
- 
最後に呼び出されたメソッドのメソッド名(のシンボル) そのようなメソッドがなければ0になる。 
- binding
- 
現在のコンテキスト 
- klass
- 
現在呼び出されているメソッドのクラスオブジェクト。 
 
- display_c_call -> bool[permalink][rdoc][edit]
- display_c_call? -> bool
- 
真ならば、ビルトインメソッドの呼び出しを表示します。デフォルトは偽です。 
- display_c_call=(flag)[permalink][rdoc][edit]
- 
ビルトインメソッドの呼び出しを表示するかどうかを設定します。 - [PARAM] flag:
- ビルトインメソッドの呼び出しを表示するならば、真を指定します。
 
- display_process_id -> bool[permalink][rdoc][edit]
- display_process_id? -> bool
- 
真ならば、プロセス ID を表示します。デフォルトは、偽です。 
- display_process_id=(flag)[permalink][rdoc][edit]
- 
プロセス ID を表示するかどうかを設定します。 - [PARAM] flag:
- プロセス ID を表示するならば、真を指定します。
 
- display_thread_id -> bool[permalink][rdoc][edit]
- display_thread_id? -> bool
- 
真ならば、スレッド ID を表示します。デフォルトは、真です。 
- display_thread_id=(flag)[permalink][rdoc][edit]
- 
スレッド ID を表示するかどうかを設定します。 - [PARAM] flag:
- スレッド ID を表示するならば、真を指定します。
 
- new[permalink][rdoc][edit]
- 
自身を初期化します。 
- off -> nil[permalink][rdoc][edit]
- 
トレース出力を中断します。トレース出力を開始するには、Tracer.onを使用します。 [SEE_ALSO] Tracer.on 
- on -> nil[permalink][rdoc][edit]
- on {...}
- 
トレース出力を開始します。ブロックを与えられた場合はそのブロック内のみトレース出力を行います。 require 'tracer' Tracer.on class Test def test b = 2 end end t = Test.new t.test[SEE_ALSO] Tracer.off 
- set_get_line_procs(filename, proc)[permalink][rdoc][edit]
- set_get_line_procs(filename) {|line| .... }
- 
あるファイルについて利用する、行番号からソースのその行の内容を返す手続きを指定します。何も指定しなければデフォルトの動作が利用されます。指定する手続きは行番号を唯一の引数として呼び出されます。 - [PARAM] filename:
- ソースファイルの場所を文字列で指定します。
- [PARAM] proc:
- 通常、文字列を返す手続きオブジェクトを指定します。
 # 例 dummy.rb の3行目から6 行目のトレース出力に !! をつける require 'tracer' Tracer.set_get_line_procs('./dummy.rb'){|line| str = "\n" str = "!!\n" if line >= 3 and line <= 6 str } Tracer.on require 'dummy' dm = Dummy.new puts dm.number =begin # dummy.rb class Dummy def initialize @number = 135 end attr :number end =end
- stdout -> object[permalink][rdoc][edit]
- 
トレース出力先を参照します。 
- stdout=(fp)[permalink][rdoc][edit]
- 
トレース出力先を変更します。 - [PARAM] fp:
- 新しいトレース出力先を指定します。
 require 'tracer' fp = File.open('temptrace.txt', "w") Tracer.stdout = fp Tracer.on { puts "Hello" } fp.close
- stdout_mutex -> Mutex[permalink][rdoc][edit]
- 
[TODO] 
- verbose -> bool[permalink][rdoc][edit]
- verbose? -> bool
- 
真ならばトレース出力の開始や終了を知らせます。 
- verbose=(flag)[permalink][rdoc][edit]
- 
トレース出力の開始や終了を知らせる文字列("Trace on"または"Trace off")が必要なら真を設定します。 - [PARAM] flag:
- トレース出力の開始や終了を知らせる文字列が必要ならtrueを設定します。
 require 'tracer' Tracer.verbose = true Tracer.on { puts "Hello" } # 出力例 Trace on #0:t5.rb:7::-: puts "Hello" #0:t5.rb:7:Kernel:>: puts "Hello" #0:t5.rb:7:IO:>: puts "Hello" Hello#0:t5.rb:7:IO:<: puts "Hello" #0:t5.rb:7:IO:>: puts "Hello" #0:t5.rb:7:IO:<: puts "Hello" #0:t5.rb:7:Kernel:<: puts "Hello" Trace off
インスタンスメソッド
- add_filter(p = proc)[permalink][rdoc][edit]
- 
[TODO] フィルターを追加します。 - [PARAM] p:
- Proc オブジェクトを指定します。
 
- get_line(file, line) -> String[permalink][rdoc][edit]
- 
[TODO] - [PARAM] file:
- [PARAM] line:
 
- get_thread_no -> Integer[permalink][rdoc][edit]
- 
[TODO] 
- off -> ()[permalink][rdoc][edit]
- 
トレース出力を中断します。 
- on -> ()[permalink][rdoc][edit]
- on { ... } -> ()
- 
トレース出力を再開します。 ブロックを与えるとブロックの実行中のみトレースを出力します。 
- set_get_line_procs(file, p = proc)[permalink][rdoc][edit]
- 
[TODO] 
- stdout -> IO[permalink][rdoc][edit]
- 
[SEE_ALSO] Tracer.stdout 
- trace_func(event, file, line, id, binding, klass, *) -> object | nil[permalink][rdoc][edit]
- 
[TODO] 
定数
- EVENT_SYMBOL[permalink][rdoc][edit]
- 
トレース出力のシンボルのハッシュです。下記のような文字列があります。 EVENT_SYMBOL = { "line" => "-", "call" => ">", "return" => "<", "class" => "C", "end" => "E", "c-call" => ">", "c-return" => "<", }[SEE_ALSO] Tracer.add_filter 
- Single -> Tracer[permalink][rdoc][edit]
- 
[TODO]