コンテンツへスキップ
uencoder

Call Stack

コールスタックは、関数呼び出しの情報(引数、ローカル変数、リターンアドレス)を後入れ先出しで格納する領域であり、関数の復帰時にスタックフレームがポップされる。

目的

関数呼び出しの仕組みとスタックオーバーフローの原因を理解し、バックトレースによるデバッグの基礎とする。

メカニズム

関数を呼び出すとスタックフレーム(引数、ローカル変数、リターンアドレス)がプッシュされる。復帰するとフレームがポップされ、リターンアドレスへ jump する。スタックの大きさには上限があるため、深い再帰はスタックオーバーフローを引き起こす。末尾呼び出し最適化はスタックフレームを再利用する。DevTools のコールスタックパネルはデバッグに役立つ。

ユースケース

  • デバッグ
  • プロファイリング
  • 再帰アルゴリズムの最適化

関連用語

References