AI活用の教科書
バックエンド開発テストふつう3分で読了

スタックトレース

stack traceすたっくとれーす

ひとことで言うと

エラーが起きるまでに通った関数の道のりを上から順に並べた履歴のことです。

📖 もうちょい詳しく

何が新しいの?

スタックトレースは新しい技術ではなく、プログラムがエラーで止まったときにほとんどの言語が自動で出してくれる「報告書」です。エラーの文章だけを見ても、どこが原因かは分かりにくいことが多いです。そこで、止まる直前までに通った道のりを並べて見せてくれます。

どうやって動いてるの?

プログラムは、ある関数がべつの関数を呼び、その関数がまたべつの関数を呼ぶ、というように呼び出しを積み重ねながら動きます。この「いま呼び出しの途中にあるもの」を積み上げた一覧をコールスタックと呼びます。エラーが起きると、その時点のコールスタックを上から下まで写し取って文字にしたものが、スタックトレースです。

何ができるの?

一番上に書かれているのが、実際にエラーが起きた場所であることが多いです。その下を順に見ていくと、「どの関数からそこへ辿り着いたか」が分かります。エラー文だけでは見えない原因の場所を、ファイル名や行番号つきで素早く絞り込めます。

🌱 身近なたとえ

建物の中で迷子になった人を探す道のりで例えると分かりやすいです。「正面玄関から入って、2階へ上がって、左の部屋に入って、奥の机の前で転んだ」という順番のメモがあれば、転んだ場所だけでなく、どう辿ってそこに来たかも一目で分かります。スタックトレースは、このプログラム版の「辿ってきた道のメモ」です。

✅ まず覚えるポイント

  • エラーが起きるまでに通った関数を順に並べた履歴のことです。
  • 一番上が、実際にエラーが起きた場所であることが多いです。
  • 各行にファイル名や行番号がついていて、原因の場所を絞り込めます。
  • 上から下へ「呼び出した順」をさかのぼって読めます。
  • まず読むのは自分が書いたファイルの行で、ライブラリ内部の行は後回しでよいです。

🧭 よくある勘違い

スタックトレース=エラーそのもの?

スタックトレースは「エラーの中身」ではなく「そこへ辿り着いた道のり」です。エラーの種類や内容を示すメッセージは別にあり、トレースはその発生場所を補う案内役だと考えると整理しやすいです。

一番下を見れば原因が分かる?

言語や設定によって上下の向きは変わりますが、多くの場合は一番上(または一番最後)が実際に止まった場所です。長いトレースに圧倒されず、まず自分のコードのファイル名が出ている行から読むのがコツです。

🧩 関連して覚えると楽な言葉

  • 例外処理 (exception): 想定外の出来事でプログラムが止まる仕組み。トレースとセットで出ます。
  • スタック (stack): 最後に入れたものから取り出す入れ物。いま呼び出し中の関数を積むコールスタックの素になります。
  • デバッガ (debugger): プログラムを途中で止めて中身をのぞく道具。トレースは原因探しの手がかりになります。
  • ログ (log): 動作の記録。エラー時にトレースをログへ残すことが多いです。

🏁 ひとことでまとめ

スタックトレースは、プログラムが転んだ場所と、そこまで辿ってきた道のりを示す案内メモです。