2010-08-18 10 views

Respuesta

3

Cada vez que llamas a un método, se coloca una entrada en la "pila" para ese hilo que describe el método y los parámetros utilizados para llamar al método. Cuando el método retorna, el método y sus parámetros se eliminan de la pila. Así es como el entorno operativo sabe dónde regresar cuando termina un método. Simplemente elimina la entrada superior de la pila, limpia las variables locales que se crearon durante ese marco de pila y regresa al método anterior. (Eso está simplificado, pero generalmente es la idea.)

Puede pensarlo literalmente como una "pila" de las instrucciones que lo trajeron aquí.

Eso es lo que significa para el entorno operativo.

Para el desarrollador, el propósito práctico es ayudarle a comprender por qué su programa se encuentra en el estado en que se encuentra. Siempre que la ejecución del programa se detenga en el depurador, ya sea por punto de interrupción o por una excepción (dependiendo de su Configuración de Visual Studio), tendrá acceso a la pila actual. Recuerde que esta pila no muestra TODOS los métodos que se han invocado hasta este momento. Cualquier método que completó se eliminó de la pila. No es un registro.

Puede hacer doble clic en cualquiera de las entradas en la pila para ir a ese código fuente (si está disponible en su máquina). Mientras estás allí, puedes inspeccionar variables locales, etc. Es un tipo de herramienta de detección que te ayuda a descubrir qué ha sucedido en tu programa hasta este momento.

7

Cuando se rompe el código (es decir, cuando se lanza una excepción) la ventana Rastreo de pila le mostrará todos los métodos que se invocaron antes del método que generó la excepción, incluidos los parámetros para cada método y el estado de estos parámetros. Esto hace que la depuración sea más fácil, especialmente en los gráficos de llamadas más complejos (es decir, cuando no se puede determinar mirando el código que llamó a qué otro método/propiedad/función).

Inténtelo, coloque un punto de interrupción en algún lugar de su código (F9), ejecute su código, espere que se golpee el punto de interrupción y luego abra la ventana de la pila. Verá todas las llamadas hasta la línea actual. Puede hacer doble clic en cada entrada en la ventana de seguimiento de la pila y el cursor saltará directamente hacia allí.

En caso de que se preguntaban: líneas grises son las llamadas a métodos de las cuales hay código fuente, o símbolos se cargan. Puede hacer clic con el botón derecho en estas líneas y seleccionar Cargar símbolos para cargar los símbolos.

1

El propósito de la pila de llamadas es para que pueda ver exactamente lo que causó un problema llamado a suceder.

Cuando nos fijamos en el seguimiento de pila en una excepción, se puede ver la llamada original que provocó el error suceda.

Al depurar en Visual Studio, puede navegar hacia arriba y hacia abajo en la pila de llamadas para ver qué valores está almacenando su aplicación en diferentes niveles. Es útil para depurar cómo llegó su aplicación al estado en el que se encuentra.

1

El propósito de la ventana de la pila de llamadas es proporcionarle acceso a la ruta completa del código que le llevó a la instrucción actual. Puede usarlo para navegar a llamadas de función previas dentro del programa, inspeccionar variables locales, parámetros, etc. Es una herramienta invaluable para determinar por qué su código está haciendo lo que está haciendo.

Cuestiones relacionadas