Call Stack
コールスタックは、関数呼び出しの情報(引数、ローカル変数、リターンアドレス)を後入れ先出しで格納する領域であり、関数の復帰時にスタックフレームがポップされる。
目的
関数呼び出しの仕組みとスタックオーバーフローの原因を理解し、バックトレースによるデバッグの基礎とする。
メカニズム
関数を呼び出すとスタックフレーム(引数、ローカル変数、リターンアドレス)がプッシュされる。復帰するとフレームがポップされ、リターンアドレスへ jump する。スタックの大きさには上限があるため、深い再帰はスタックオーバーフローを引き起こす。末尾呼び出し最適化はスタックフレームを再利用する。DevTools のコールスタックパネルはデバッグに役立つ。
ユースケース
- デバッグ
- プロファイリング
- 再帰アルゴリズムの最適化