スタックトレース【stack backtrace】stack traceback

概要

スタックトレースとは、プログラムの実行中にエラーや例外が発生した際、その時点でのコールスタックの内容を記録・表示したもの。エラー発生直前にどの関数がどの順序で呼び出されていたかを示し、障害の発生箇所や経路の特定、デバッグ作業に用いられる。
スタックトレースのイメージ画像

プログラムは関数やメソッドを相互に呼び出しながら動作する。この呼び出し関係はメモリ上の「コールスタック」と呼ばれる領域で管理されており、ある関数が別の関数を呼び出すたびに、呼び出し元の情報がスタックの末尾に積み重なっていく。呼び出された関数の処理が終わると、その情報はスタックから取り除かれ、制御が呼び出し元に戻る。

エラーが発生してプログラムが停止すると、その瞬間のコールスタックの内容がスタックトレースとして出力される。一般的な表示形式として、エラーが発生した関数を先頭に、その呼び出し元、さらにその呼び出し元へと、実行経路を逆順にたどる形で一覧表示される。

各行には関数名、ソースファイル名、行番号などが示されるため、問題がコードのどこで、どのような呼び出し経路を経て発生したかを把握できる。PythonJavaなど多くの言語処理系はエラー発生時にスタックトレースを自動で出力し、デバッガAPMアプリケーション性能管理)ツールでも取得・閲覧できる。CやC++などのネイティブ環境では、デバッグシンボルの有無によって情報量が変わるほか、コンパイラの最適化によって一部のフレームが省略される場合もある。

JavaScriptではソースマップによりバンドル・圧縮後のコードと元のソースコードを対応付けることで、可読性の高いスタックトレースを得られる仕組みも整っている。近年では非同期処理を多用するシステムや、複数のサービスが連携するマイクロサービスアーキテクチャが普及し、単一プログラム内のスタックトレースだけでは障害の全容を追いきれない場面も増えている。これに対応する形で、複数のサービスや処理をまたいで実行経路を追跡する「分散トレーシング」の技術も広まりつつある。

(2026.6.19更新)
 

他の辞典等による「スタックトレース」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。