call stack
コールスタック
名詞
複数形: call stacks
call stackは、プログラムが関数を呼び出す際に、その戻り先やローカル変数を一時的に保存するための後入れ先出し(LIFO)形式のデータ構造です。関数が呼び出されるたびに新しいデータ(スタックフレーム)が積み上げられ、関数が終了するとそのデータが取り除かれるため、プログラムは正確に元の処理に戻ることができます。
スタックオーバーフローとの関係
この構造において最も注意すべきなのが、stack overflowと呼ばれる現象です。これは、再帰呼び出しが無限に繰り返されるなどして、割り当てられたメモリ領域を使い果たしてしまった状態を指します。例えば、終了条件のない再帰関数を記述すると、call stackにデータが積み上がり続け、最終的にプログラムが異常終了します。
デバッグにおける重要性
開発者がエラーの原因を特定する際、call stackの情報を確認することは不可欠です。クラッシュした時点でのcall stack(スタックトレース)を追うことで、どの関数がどの順番で呼び出され、最終的にどこで問題が発生したのかという実行経路を正確に把握することが可能です。
意味
名詞コールスタック
コンピュータープログラミングにおける特殊なデータ構造で、プログラムの有効なサブルーチンや関数の情報を保存し、各有効な呼び出しに対する戻り先アドレスとローカル変数を追跡すること
The debugger allowed the developer to inspect the call stack to see which function had triggered the crash.
デバッガーを使用したことで、開発者はコールスタックを検査し、どの関数がクラッシュを引き起こしたかを確認することができた。
関連語
stackframefunctionprocedurerecursionreturnpointermemoryaddressoverflowunderflowpushpopstack framecallinvocationparameterargumentscopecontextheapsegmentregisterinstructionopcodecompilerinterpreterruntimedebuggertracebacktraceexceptionerrorcrashsegmentation faultdepthLIFObufferallocationdeallocationpointer arithmeticoptimizationthreadprocessconcurrencyasynchronouscallbackgeneratorstate machinevirtual machinebytecodeassemblymachine codearchitectureCPURAMcachepagingvirtual memory