Pile d’appels

Définition - Que signifie Call Stack?

Une pile d'appels, en C #, est la liste des noms des méthodes appelées au moment de l'exécution depuis le début d'un programme jusqu'à l'exécution de l'instruction courante.

Une pile d'appels est principalement destinée à garder une trace du point auquel chaque sous-programme actif doit retourner le contrôle lorsqu'il a fini de s'exécuter. La pile d'appels agit comme un outil pour déboguer une application lorsque la méthode à tracer peut être appelée dans plusieurs contextes. Cela constitue une meilleure alternative que l'ajout de code de suivi à toutes les méthodes qui appellent la méthode donnée. Chaque fois qu'une exception est levée n'importe où dans le code utilisateur, le Common Language Runtime (CLR) déroulera la pile d'appels et recherchera le bloc catch pour déterminer le type d'exception spécifique. S'il n'y a pas de gestionnaire approprié, CLR mettra fin à l'application. Par conséquent, la pile d'appels est utilisée pour indiquer au pointeur d'exécution où aller ensuite.

Definir Tech explique Call Stack

La pile d'appels est organisée comme une "pile", une structure de données en mémoire pour stocker les éléments de manière dernier entré premier sorti, de sorte que l'appelant du sous-programme pousse l'adresse de retour sur la pile et le sous-programme appelé, après avoir terminé, fait sortir l'adresse de retour de la pile d'appels pour transférer le contrôle vers cette adresse.

En C #, toute application commence par une méthode "main", qui à son tour appelle d'autres méthodes. À chaque appel à une méthode, la méthode est ajoutée en haut de la pile et est supprimée de la pile lors de son retour à l'appelant. De plus, la portée d'une variable déclarée dans un bloc est déterminée à partir du moment où sa valeur est poussée sur la pile (dans le cadre de la pile d'appels) jusqu'à ce que l'exécution quitte le bloc lorsque la variable et la pile d'appels sont extraites de la pile. Ainsi, la pile conserve à la fois les variables locales (types valeur) et la pile d'appels (cadres de pile), dont la taille indique la complexité d'un programme.

Cette définition a été écrite dans le contexte de C #