| Call-Stack | |||||
|
Ein Call-Stack ist eine dynamische Speicherstruktur die Informationen über die aktiven Subroutinen von Programmen speichert. Der Call-Stack wird auch Execution-Stack, Control-Stack, Run-Time-Stack oder Funktions-Stack genannt. Bei Aufruf einer bestimmten Subroutinen-Funktion ist so gewährleistet dass das Hauptprogramm bei der Übergabe der Parameter weiss, mit welchen Werten die Daten zurückgegeben werden. Dadurch ist ein sicheres Adressen- und Datenhandling möglich. Ein Call-Stack hat somit mehrere Aufgaben: die Sortierung der Rückgabe-Adressen, die lokale Datenspeicherung, die Kontrolle über die Parameterübergabe, die Verwaltung der Pointer (Zeiger auf Adressen und Daten), die Speicherung eines aktuellen Pointers auf Daten und Adressen und die Kontrolle, Speicherung und Verwaltung von inneren Subroutinen-Umgebungen. Letzeres ist von Nöten, wenn eine Subroutine über eine innere Subroutine verfügt. Dann müssen die Parameter und lokalen Daten im Verhältnis zur äusseren Subroutine gespeichert und verwaltet werden. Ein Call-Stack besteht aus einem Stack-Pointer und einem Frame-Pointer und einem Stack-Frame. |
|||||
| Siehe auch: Debugging | |||||