【Ruby3.x】Thread::backtrace()メソッドの使い方
backtraceメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
backtraceメソッドは、指定されたThreadオブジェクトの実行履歴(バックトレース)を取得するメソッドです。このメソッドは、現在実行中のスレッドから見て、他の特定のThreadオブジェクトが、これまでにどのようなメソッドを呼び出し、どのファイルや行番号で処理が行われてきたか、その一連の呼び出し経路を調べたい場合に利用されます。主に、複数のスレッドが動作するマルチスレッド環境でのプログラムのデバッグにおいて、特定のワーカースレッドが現在どのような状態にあるか、どこで停止しているのか、あるいは予期せぬループに陥っていないかなどを確認する際に非常に有用です。
backtraceメソッドは、呼び出し元のファイル名、行番号、メソッド名を含む文字列の配列を返します。各文字列は通常、「ファイル名:行番号:in メソッド名」のような形式で、呼び出しスタックの各フレームの情報を提供します。この配列の最初の要素が現在の実行位置に最も近く、最後の要素が最初に呼び出されたメソッドの情報を示します。スレッドが正常に動作している最中であれば、その時点での詳細なバックトレース情報が得られます。この情報を用いることで、プログラムのバグの原因特定や、処理の流れの分析に役立てることができます。
構文(syntax)
1puts Thread.current.backtrace
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array<String>
現在のスレッドの実行履歴(バックトレース)を文字列の配列として返します。