kind=defined
names=add_filter
visibility=public

--- add_filter(proc)
--- add_filter {|event, file, line, id, binding, klass| .... }

トレース出力するかどうかを決定するフィルタを追加します。
何もフィルタを与えない場合はすべての行についてトレース情報が出力されます。
与えられた手続き(ブロックまたはProcオブジェクト)が真を返せば
トレースは出力されます。


ruby 1.8 ではブロックを与えると警告がでます。

フィルタは複数追加でき、
そのうち一つでも偽を返すとトレースの出力は抑制される。

@param proc トレース出力するかどうかを決定する手続きオブジェクトを指定します。
            通常、true か falseを返す必要があります。

フィルタ手続きは引数として event, file, line, id, binding, klass の
6 つをとります。
[[m:Kernel.#set_trace_func]] で指定するものとほぼ同じです。

==== フィルタ手続きのパラメータ

: event
  イベントを表す文字列。
  以下の種類がある。カッコ内は tracer の出力での表記。

//emlist{
  * line (-)   ある行を実行
  * call (>)   メソッド呼び出し
  * return (<) メソッドからのリターン
  * class (C)  クラスコンテキストに入った
  * end (E)    クラスコンテキストから出た
  * raise      例外が発生した
  * c-call     Cで記述されたメソッドが呼ばれた
  * c-return   Cで記述されたメソッドからreturn
//}

: file
  現在処理しているファイルの名前

: line
  現在処理している行番号

: id
  最後に呼び出されたメソッドのメソッド名(のシンボル)
  そのようなメソッドがなければ0になる。

: binding
  現在のコンテキスト

: klass
  現在呼び出されているメソッドのクラスオブジェクト。


