Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Thread::add_trace_func()メソッドの使い方

add_trace_funcメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

add_trace_funcメソッドは、現在のスレッドの実行状況を監視するためのフックを追加するメソッドです。このメソッドは、引数として指定されたブロックまたはProcオブジェクトを、現在のスレッドの実行中に特定のイベントが発生した際に自動的に呼び出します。捕捉できるイベントには、プログラムの新しい行が実行された時、メソッドが呼び出された時、メソッドの実行が終了した時、クラスが定義された時などがあります。

この機能は、プログラムのデバッグやパフォーマンス分析を行うツールを作成する際に特に有用です。例えば、特定のコードがいつ実行されたか、どのような順序でメソッドが呼び出されたか、変数の値がどのように変化したかといった、プログラムの詳細な動作をリアルタイムで追跡し、記録することが可能になります。

RubyのKernel.set_trace_funcがプログラム全体にわたるグローバルなトレースフックを設定するのに対し、Thread#add_trace_funcは、現在実行中のスレッドに限定してフックを追加します。これにより、マルチスレッド環境において他のスレッドの処理に影響を与えることなく、特定のスレッドの動作のみを詳細に監視することが可能になります。複数のフックを同じスレッドに登録することもでき、それぞれ独立して機能します。このメソッドは、追加されたフックを管理するためのオブジェクトを返します。

構文(syntax)

1th.add_trace_func do |event, file, line, id, binding, classname|
2end

引数(parameters)

a_proc

  • a_proc: トレース関数として登録するProcオブジェクト

戻り値(return)

Proc

指定したトレーシング関数を Thread オブジェクトに登録し、その登録したトレーシング関数を表す Proc オブジェクトを返します。

関連コンテンツ

関連プログラミング言語