スタックトレース
スタックトレースとは、プログラムの実行過程を記録したスタックフレームを記録しておくことである。
スタックフレームは、関数が呼ばれるために生成される。その内容はシステムやコンパイラなどの実装によって異なるが、呼び出し元への戻りアドレスやローカル変数などによって構成されている。
スタックトレースでは、プログラムのデバック時に実行過程をプレイバックするための情報として活用でできる。関数名の情報さえあれば、スタックトレースから問題発生時に最後に実行していた関数名がわかる。また、プログラムが異常動作の結果により停止した場合には、スタックトレースにより、想定外の関数が動作していたことや、思わぬルートを実行されていたことなどが分かる場合があり、問題解決の重要な手がかりになる。
開発環境: | シンボリックデバッガ 条件コンパイル シングルステップ実行 スタックトレース デバッガ デバッグ トレース |
スタックトレース
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/04/29 10:33 UTC 版)
コンピュータにおいて、スタックトレース(英語: stack trace)とは、プログラムの実行中の特定の時点でのアクティブなスタックフレームのレポートである。スタックバックトレース(英語: stack backtrace[1])、スタックトレースバック(英語: stack traceback[2])とも言い、単にバックトレースとも言う[注釈 1]。
注釈
- ^ GNUデバッガ (gdb) でのレポートコマンドは、バックトレース (backtrace) を縮めた
bt
である。GNUデバッガ#コマンド例も参照。 - ^ コールスタックの割り当てと解放は通例オペレーティングシステムが担当し、アプリケーションプログラムで明示的に割り当てと解放をする必要はない。
出典
- ^ “libc manual: backtraces”. gnu.org. 2014年7月8日閲覧。
- ^ “traceback — Print or retrieve a stack traceback”. python.org. 2014年7月8日閲覧。
- ^ Examining the Stack Trace - Windows drivers | Microsoft Learn
- ^ デバッガーで呼び出し履歴を表示する - Visual Studio (Windows) | Microsoft Learn
- ^ Throwable (Java Platform SE 8 )
- ^ Environment.StackTrace Property (System) | Microsoft Learn
- ^ Exception.StackTrace Property (System) | Microsoft Learn
- ^ Chapter 35. Boost.Stacktrace 1.0 - 1.82.0
- ^ basic_stacktrace - cpprefjp C++日本語リファレンス
- ^ console.trace() - Web API | MDN
- 1 スタックトレースとは
- 2 スタックトレースの概要
- 3 詳細
- 4 プログラミング言語によるサポート
- スタックトレースのページへのリンク