【Ruby3.x】Thread::set_trace_func()メソッドの使い方
set_trace_funcメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
set_trace_funcメソッドは、Rubyプログラムの実行状況を監視し、特定のイベントが発生した際に指定された処理を実行するメソッドです。このメソッドは、対象となるスレッドの実行フローにおいて、メソッド呼び出しや行の実行、例外発生といったイベントが起こるたびに、あらかじめ定義されたブロックを呼び出します。これにより、プログラムの動的な挙動を詳細に追跡することが可能になります。
このメソッドには、監視処理を行うブロック、またはProcオブジェクトを引数として渡します。ブロックが呼び出される際には、event(発生したイベントの種類)、file(ファイル名)、line(行番号)、id(メソッド名やクラス名)、binding(現在の実行コンテキスト)、classname(クラス名)といった、イベントに関する詳細な情報が引数として提供されます。
主にデバッグツール、プロファイラ、コードカバレッジツールなどの開発に利用されます。プログラムの実行に監視処理を挿入するため、パフォーマンスに影響を与える可能性がありますので、通常のアプリケーションコードでの継続的な利用は推奨されません。開発時のデバッグや特定の計測目的に限定して利用することが望ましいです。このメソッドは、特に個々のスレッドの実行を詳細に監視する場合に有用です。
構文(syntax)
1Thread.set_trace_func do |event, file, line, id, binding, classname| 2end
引数(parameters)
trace_func
- trace_func: イベント発生時に呼び出されるコールバック関数
戻り値(return)
Proc | nil
指定されたトレース関数(Procオブジェクト)またはnilを返します。トレース関数が以前に設定されていた場合、その関数が返されます。