frame pointer

/freɪm ˈpɔɪntər/ フレームポインター

1. プログラムの実行中に、現在の関数のスタックフレームの先頭を指すレジスタ。ローカル変数や引数へのアクセスに用いられる。

関数が呼び出されると、その関数のためのメモリ領域(スタックフレーム)がスタック上に確保されます。フレームポインタは、このスタックフレームの特定の固定された位置(通常はフレームの開始点)を指すCPUレジスタです。これにより、関数内のローカル変数や引数がスタック上のどこにあるかを効率的に特定できます。
The frame pointer is crucial for managing the call stack during function execution. (関数実行中にコールスタックを管理する上で、フレームポインタは非常に重要です。)

2. 関数呼び出しの管理において、スタックをデバッグしたり、例外処理時に呼び出し履歴を辿ったりするための基準点となる仕組み。

フレームポインタは、単にメモリ位置を指すだけでなく、関数の呼び出し履歴(コールスタック)を遡る(スタックアンワインド)際に重要な役割を果たします。デバッガがプログラムの実行を一時停止した際、フレームポインタを辿ることで、どの関数がどの関数を呼び出したか、各関数のローカル変数の状態などを確認できます。また、例外が発生した際にスタックトレースを生成する際にも利用されます。
Debuggers often utilize the frame pointer to reconstruct the call stack and inspect local variables. (デバッガは、コールスタックを再構築し、ローカル変数を検査するためにフレームポインタをよく利用します。)