要約
実行トレース出力をとる機能を提供するクラスです。
目次
- 特異メソッド
- インスタンスメソッド
- 追加されるメソッド
- 定数
特異メソッド
add_filter(proc)Ruby 3.1 で削除[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-
現在呼び出されているメソッドのクラスオブジェクト。
- [PARAM]
display_c_call -> boolRuby 1.9.3 から Ruby 3.1 で削除[permalink][rdoc][edit]display_c_call? -> bool-
真ならば、ビルトインメソッドの呼び出しを表示します。デフォルトは偽です。
display_c_call=(flag)Ruby 1.9.3 から Ruby 3.1 で削除[permalink][rdoc][edit]-
ビルトインメソッドの呼び出しを表示するかどうかを設定します。
- [PARAM]
flag: - ビルトインメソッドの呼び出しを表示するならば、真を指定します。
- [PARAM]
display_process_id -> boolRuby 1.9.3 から Ruby 3.1 で削除[permalink][rdoc][edit]display_process_id? -> bool-
真ならば、プロセス ID を表示します。デフォルトは、偽です。
display_process_id=(flag)Ruby 1.9.3 から Ruby 3.1 で削除[permalink][rdoc][edit]-
プロセス ID を表示するかどうかを設定します。
- [PARAM]
flag: - プロセス ID を表示するならば、真を指定します。
- [PARAM]
display_thread_id -> boolRuby 1.9.3 から Ruby 3.1 で削除[permalink][rdoc][edit]display_thread_id? -> bool-
真ならば、スレッド ID を表示します。デフォルトは、真です。
display_thread_id=(flag)Ruby 1.9.3 から Ruby 3.1 で削除[permalink][rdoc][edit]-
スレッド ID を表示するかどうかを設定します。
- [PARAM]
flag: - スレッド ID を表示するならば、真を指定します。
- [PARAM]
newRuby 3.1 で削除[permalink][rdoc][edit]-
自身を初期化します。
off -> nilRuby 3.1 で削除[permalink][rdoc][edit]-
トレース出力を中断します。トレース出力を開始するには、Tracer.onを使用します。
[SEE_ALSO] Tracer.on
on -> nilRuby 3.1 で削除[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)Ruby 3.1 で削除[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 - [PARAM]
stdout -> objectRuby 3.1 で削除[permalink][rdoc][edit]-
トレース出力先を参照します。
stdout=(fp)Ruby 3.1 で削除[permalink][rdoc][edit]-
トレース出力先を変更します。
- [PARAM]
fp: - 新しいトレース出力先を指定します。
require 'tracer' fp = File.open('temptrace.txt', "w") Tracer.stdout = fp Tracer.on { puts "Hello" } fp.close - [PARAM]
stdout_mutex -> MutexRuby 1.9.3 から Ruby 3.1 で削除[permalink][rdoc][edit]-
[TODO]
verbose -> boolRuby 3.1 で削除[permalink][rdoc][edit]verbose? -> bool-
真ならばトレース出力の開始や終了を知らせます。
verbose=(flag)Ruby 3.1 で削除[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 - [PARAM]
インスタンスメソッド
add_filter(p = proc)Ruby 3.1 で削除[permalink][rdoc][edit]-
[TODO]
フィルターを追加します。
- [PARAM]
p: - Proc オブジェクトを指定します。
- [PARAM]
get_line(file, line) -> StringRuby 3.1 で削除[permalink][rdoc][edit]-
[TODO]
- [PARAM]
file: - [PARAM]
line:
- [PARAM]
get_thread_no -> IntegerRuby 3.1 で削除[permalink][rdoc][edit]-
[TODO]
off -> ()Ruby 3.1 で削除[permalink][rdoc][edit]-
トレース出力を中断します。
on -> ()Ruby 3.1 で削除[permalink][rdoc][edit]on { ... } -> ()-
トレース出力を再開します。
ブロックを与えるとブロックの実行中のみトレースを出力します。
set_get_line_procs(file, p = proc)Ruby 3.1 で削除[permalink][rdoc][edit]-
[TODO]
stdout -> IORuby 3.1 で削除[permalink][rdoc][edit]-
[SEE_ALSO] Tracer.stdout
trace_func(event, file, line, id, binding, klass, *) -> object | nilRuby 3.1 で削除[permalink][rdoc][edit]-
[TODO]
追加されるメソッド
trace_func(*vars) -> object | nilRuby 3.1 で削除[permalink][rdoc][edit] [added by debug]-
debug ライブラリの内部で使用します。
定数
EVENT_SYMBOLRuby 3.1 で削除[permalink][rdoc][edit]-
トレース出力のシンボルのハッシュです。下記のような文字列があります。
EVENT_SYMBOL = { "line" => "-", "call" => ">", "return" => "<", "class" => "C", "end" => "E", "c-call" => ">", "c-return" => "<", }[SEE_ALSO] Tracer.add_filter
Single -> TracerRuby 3.1 で削除[permalink][rdoc][edit]-
[TODO]