Pila de llamadas

Definición: ¿Qué significa Pila de llamadas?

Una pila de llamadas, en C #, es la lista de nombres de métodos llamados en tiempo de ejecución desde el comienzo de un programa hasta la ejecución de la declaración actual.

Una pila de llamadas está destinada principalmente a realizar un seguimiento del punto al que cada subrutina activa debe devolver el control cuando termina de ejecutarse. La pila de llamadas actúa como una herramienta para depurar una aplicación cuando el método que se va a rastrear se puede llamar en más de un contexto. Esto constituye una mejor alternativa que agregar código de seguimiento a todos los métodos que llaman al método dado. Siempre que se lanza una excepción en cualquier parte del código de usuario, Common Language Runtime (CLR) desenrollará la pila de llamadas y buscará el bloque de captura para determinar el tipo de excepción específico. Si no hay un controlador adecuado, CLR terminará la aplicación. La pila de llamadas, por lo tanto, se usa para decirle al puntero de ejecución adónde ir a continuación.

Techinfo explica la pila de llamadas

La pila de llamadas está organizada como "pila", una estructura de datos en la memoria para almacenar elementos de una manera de último en entrar, primero en salir, de modo que el llamador de la subrutina inserta la dirección de retorno en la pila y la subrutina llamada, después de terminar saca la dirección de retorno de la pila de llamadas para transferir el control a esa dirección.

En C #, cualquier aplicación comienza con un método "principal", que a su vez llama a otros métodos. En cada llamada a un método, el método se agrega a la parte superior de la pila y se quita de la pila cuando regresa al llamador. Además, el alcance de una variable declarada en un bloque se determina desde el momento en que su valor se inserta en la pila (como parte de la pila de llamadas) hasta que la ejecución abandona el bloque cuando la variable y la pila de llamadas se extraen de la pila. Así, la pila mantiene tanto las variables locales (tipos de valor) como la pila de llamadas (marcos de pila), cuyo tamaño indica la complejidad de un programa.

Esta definición se escribió en el contexto de C #