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

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

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

作成日: 更新日:

基本的な使い方

TracePoint#pathメソッドは、TracePointオブジェクトが捕捉したイベントが発生したソースファイルのパスを取得するために使用されるメソッドです。

RubyのTracePointクラスは、プログラムの実行中に発生する様々なイベント(例えば、メソッドの呼び出し、行の実行、例外の発生など)を細かく追跡し、その情報を利用するための強力な機能を提供します。この機能は、プログラムのデバッグや性能分析(プロファイリング)を行う際に非常に役立ちます。

TracePointオブジェクトが捕捉するイベントには、それが「いつ」「何が起こったか」という情報だけでなく、「どこで」起こったかという情報も含まれます。このpathメソッドは、その「どこで」という情報、つまり、イベントが発生した元のソースファイルのファイルパスを文字列として提供します。例えば、あるメソッドが呼び出されたcallイベントをTracePointが捕捉した場合、pathメソッドはその呼び出されたメソッドが定義されているRubyスクリプトのファイルパスを返します。

戻り値は、イベントが発生したソースファイルの絶対パスまたは相対パスを表す文字列です。この情報は、複雑なプログラムの実行フローを詳細に追跡し、特定の処理がどのファイルで定義され、実行されているかを正確に把握するために不可欠です。これにより、予期せぬ挙動の原因を特定したり、コードの依存関係を理解したりする上での強力な手がかりとなります。

構文(syntax)

1tp = TracePoint.new(:line) do |t|
2  # t は TracePoint オブジェクトであり、現在のイベントに関する情報を持つ
3  puts t.path
4end
5
6tp.enable do
7  # このブロック内のコードの行イベントがトレースされる
8  1 + 1
9  puts "Example line"
10end

引数(parameters)

引数なし

引数はありません

戻り値(return)

String | nil

TracePoint のメソッド path は、実行中のコードのファイルパスを文字列で返します。もし実行中のコードがファイルから読み込まれていない場合(例えば、Integer#times のような組み込みメソッドの実行時など)、nil を返します。

関連コンテンツ