Ver la pila de llamadas y usar la ventana pila de llamadas del depurador

Mediante la ventana Pila de llamadas, puede ver las llamadas a las funciones o procedimientos que están actualmente en la pila. En la ventana Pila de llamadas se muestra el orden en el que se llama a los métodos y las funciones. La pila de llamadas es una buena forma de examinar y entender el flujo de ejecución de una aplicación.

Cuando no haya símbolos de depuración disponibles para una parte de una pila de llamadas, la ventana Pila de llamadas podría no mostrar información correcta para esa parte de la pila de llamadas:

[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]

Nota

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos aquí, en función de los valores de configuración o de edición activos. Para cambiar la configuración, seleccione Importar y exportar configuraciones en el menú Herramientas. Consulte Restablecer todas las configuraciones. La ventana Pila de llamadas es similar a la perspectiva de depuración de algunos IDE, como Eclipse.

Ver la pila de llamadas mientras está en el depurador

Durante la depuración, en el menú Depuración, seleccione Ventanas > Pila de llamadas o presione ctrl+alt+C.

Screenshot showing the Call Stack Window. Una flecha identifica el marco de pila donde está ubicado actualmente el puntero de ejecución. De forma predeterminada, la información de este marco de pila aparece en las ventanas del origen Variables locales, Automático, Ver y Desensamblado. Para cambiar el contexto del depurador a otro marco en la pila, cambie a otro marco de pila.

Screenshot showing the Call Stack Window.

Una flecha amarilla identifica el marco de pila donde está ubicado actualmente el puntero de ejecución. De forma predeterminada, la información de este marco de pila aparece en las ventanas del origen Variables locales, Automático, Ver y Desensamblado. Para cambiar el contexto del depurador a otro marco en la pila, cambie a otro marco de pila.

También puede ver los marcos de pila de excepciones en la pila de llamadas durante la depuración. Para más información, consulte Visualización de la pila de llamadas en el asistente de excepciones.

Mostrar código que no es de usuario en la ventana Pila de llamadas

Para mostrar código externo o que no es de usuario, alterne el botón Mostrar código externo o haga clic con el botón derecho en la ventana Pila de llamadas y seleccione Mostrar código externo.

Para mostrar código externo o no de usuario, alterne el botón Mostrar código externo de la barra de herramientas de la pila de llamadas o haga clic con el botón derecho en la ventana Pila de llamadas y seleccione Mostrar código externo.

El código que no es de usuario es cualquier código que no se muestra al habilitar Solo mi código. En código administrado, los marcos de código que no son de usuario están ocultos de forma predeterminada. Aparece esta notación en lugar de los marcos de código que no es de usuario:

[<External Code>]

Cambiar a otro marco de pila (cambiar el contexto del depurador)

  1. En la ventana Pila de llamadas, haga clic con el botón derecho en el marco cuyo código y datos quiera ver.

    Si lo prefiere, puede hacer doble clic en un marco en la ventana Pila de llamadas para cambiar a ese marco.

  2. Seleccione Cambiar a marco.

    Aparece una flecha verde con una cola rizada junto al marco que seleccionó. El puntero de ejecución permanece en el marco original, que sigue marcado con la flecha amarilla. Si selecciona Paso o Continuar en el menú Depurar, la ejecución continuará en el marco original, no en el seleccionado.

Cambie el botón Ver todos los subprocesos para ver todos los subprocesos relacionados en la ventana Pila paralela.

Puede buscar marcos de pila de llamadas relevantes escribiendo términos de búsqueda pertinentes en el cuadro de búsqueda ubicado en la esquina superior izquierda de la ventana de pila de llamadas. Los marcos de pila de llamadas pertinentes se resaltarán.

Ver el código fuente de una función de la pila de llamadas

En la ventana Pila de llamadas, haga clic con el botón derecho en la función cuyo código fuente quiera ver y seleccione Ir a código fuente.

Ejecutar una función concreta desde la ventana Pila de llamadas

En la ventana Pila de llamadas, seleccione la función, haga clic con el botón derecho y, después, elija Ejecutar hasta el cursor.

Establecer un punto de interrupción en el punto de salida de una llamada de función

Vea Establecer un punto de interrupción en una función de pila de llamadas.

Mostrar llamadas a o desde otro subproceso

Haga clic con el botón derecho en la ventana Pila de llamadas y seleccione Incluir llamadas a otros subprocesos o desde estos.

Hacer un seguimiento visual de la pila de llamadas

En Visual Studio Enterprise (solo), puede ver los mapas de código de la pila de llamadas durante la depuración.

En la ventana Pila de llamadas, abra el menú contextual. Elija Mostrar pila de llamadas en mapa de código (Ctrl + Mayús + ` ).

Para más información, vea Asignar métodos en la pila de llamadas durante la depuración.

Show Call Stack on Code Map

Ver el código de desensamblado de una función de la pila de llamadas (C#, C++, Visual Basic, F#)

En la ventana Pila de llamadas, haga clic con el botón derecho en la función cuyo código de desensamblado quiera ver y seleccione Ir al desensamblado.

Cambiar la información opcional mostrada

Haga clic con el botón derecho en la ventana Pila de llamadas y active o desactive Mostrar<la información que quiera> .

Descompilación automática de código externo de .NET

A partir de la versión 17.7 de Visual Studio 2022, puede descompilar automáticamente código .NET haciendo doble clic en el código externo, en la ventana Pila de llamadas. Para obtener más información, consulte Generación de código fuente a partir de ensamblados de .NET durante la depuración.

Cargar símbolos para un módulo (C#, C++, Visual Basic, F#)

En la ventana Pila de llamadas, puede cargar los símbolos de depuración para el código que todavía no los tenga cargados. Estos símbolos pueden ser símbolos de .NET, símbolos del sistema descargados de los servidores de símbolos públicos de Microsoft, o símbolos en una ruta de acceso de símbolos en el equipo que está depurando.

Consulte Specify symbol (.pdb) and source files (Especificación de símbolo (.pdb) y archivos de origen).

Para cargar símbolos

  1. En la ventana Pila de llamadas, haga clic con el botón derecho en el marco para el cual no están cargados los símbolos. Se oscurecerá el marco.

  2. Seleccione Cargar símbolos y, después, seleccione Servidores de símbolos de Microsoft (si está disponible) o vaya a la ruta de acceso de símbolos.

Para configurar la ruta de acceso de símbolos

  1. En la ventana Pila de llamadas, elija Configuración de símbolos en el menú contextual.

    Se abre el cuadro de diálogo Opciones y se muestra la página Símbolos.

  2. Seleccione Configuración de símbolos.

  3. En el cuadro de diálogo Opciones, haga clic en el icono de carpeta.

    En el cuadro Ubicaciones del archivo de símbolos (.pdb) , aparece un cursor.

  4. Escriba un nombre de ruta de acceso del directorio a la ubicación de los símbolos en el equipo que está depurando. Para la depuración local y remota, se trata de una ruta de acceso en el equipo local.

  5. Seleccione Aceptar para cerrar el cuadro de diálogo Opciones.