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
-
現在呼び出されているメソッドのクラスオブジェクト。