Iniciar, interrumpir, recorrer paso por paso y ejecutar procesos a través del código y detener la depuración en Visual Studio
Empezar a depurar un proyecto de VS; asociar a un proceso; interrumpir el código; recorrer el código paso a paso; ejecutar hasta el cursor; ejecutar hasta una función de la pila de llamadas; establecer la siguiente instrucción; recorrer paso a paso Solo mi código; detener y reiniciar la depuración; desasociar un proceso depurado.
Contenido
Start debugging a VS project; attach to a process
Break into code, step or run through code, set the next statement to execute
Stop, restart debugging; detach from the debugged process
Empezar a depurar un proyecto de VS y asociar a un proceso
- Start debugging a VS project**|**Attach to a process
Empezar a depurar un proyecto de VS
Cuando se abre una solución en Visual Studio, puede comenzar a depurar de tres formas:
Elija Depurar, Iniciar depuración (teclado: F5). |
La aplicación se inicia y se ejecuta hasta que:
|
Elija Depurar, Paso a paso por instrucciones (teclado: F11) o Depurar, Paso a paso por procedimientos (teclado: F10). |
La aplicación se inicia y se interrumpe en la primera línea. |
En una ventana de código fuente, seleccione una línea de código ejecutable y elija Ejecutar hasta el cursor en el menú contextual. |
La aplicación se inicia y se ejecuta hasta que encuentra un punto de interrupción o hasta la posición del cursor, lo que encuentre primero. |
Para realizar un seguimiento visual de la ejecución del código en un mapa de código durante la depuración, vea Asignar métodos en la pila de llamadas durante la depuración en Visual Studio.
Contents | Start debugging a VS project; attach to a process
Asociar a un proceso
El depurador también puede asociar a un programa que se esté ejecutando en un proceso fuera de Visual Studio. Después de asociar a un programa, podrá usar los comandos de ejecución del depurador, inspeccionar el estado del programa, etc. La capacidad de inspeccionar el programa podría ser limitada, en función de si el programa se ha generado con información de depuración, de si el usuario tiene acceso al código fuente del programa o de si el compilador JIT de Common Language Runtime realiza un seguimiento de la información de depuración.
Para asociar a un proceso que se está ejecutando en el equipo local
Elija Depurar, Asociar al proceso. En el cuadro de diálogo Asociar al proceso, seleccione el proceso en la lista Procesos disponibles y elija Asociar.
Vea Crear asociaciones con procesos en ejecución con el depurador de Visual Studio para obtener más información.
Contents | Start debugging a VS project; attach to a process
Interrumpir el código, recorrer paso a paso o ejecutar el código y establecer la siguiente instrucción que se debe ejecutar
- Break into code by using breakpoints or Break All**|Step into, over, or out of the code|Run to a specified location or function|Set the next statement to execute|Restrict stepping to Just My Code|Step into system calls|**Step into properties and operators in managed code
Interrumpir el código mediante puntos de interrupción o Interrumpir todos
Cuando se depura una aplicación con el depurador de VS, la aplicación se está ejecutando o está en modo de interrupción.
El depurador interrumpe la ejecución de la aplicación cuando llega a un punto de interrupción o cuando se produce una excepción. También puede interrumpir manualmente la ejecución en cualquier momento.
Un punto de interrupción es una señal que indica al depurador que debe suspender temporalmente la ejecución de la aplicación en un punto determinado. Cuando la ejecución se suspende en un punto de interrupción, se dice que el programa se encuentra en modo de interrupción. Entrar en el modo de interrupción no detiene ni finaliza la ejecución del programa, cuya ejecución se puede reanudar en cualquier momento.
La mayoría de las características del depurador, como la presentación de los valores de las variables en la ventana Variables locales o la evaluación de las expresiones en la ventana Inspección, solo están disponibles en el modo de interrupción. Todos los elementos de la aplicación permanecen en la memoria (por ejemplo, las funciones, variables y objetos), pero se suspenden sus movimientos y actividades. Durante el modo de interrupción, puede examinar las posiciones de los elementos y estados para buscar infracciones o errores. También puede realizar ajustes en la aplicación mientras está en modo de interrupción.
Por último, puede configurar puntos de interrupción para suspender la ejecución en función de una serie de condiciones. Vea Puntos de interrupción: Usar números de llamadas, funciones de pila de llamadas y condiciones para realizar interrupciones cuando y donde quiera en el depurador de Visual Studio. En esta sección se explican dos maneras básicas de interrumpir la ejecución del código.
Establecer puntos de interrupción en el código
Para establecer un punto de interrupción simple en el código, abra el archivo de código fuente en el editor de Visual Studio. Establezca el cursor en la línea de código en la que desea interrumpir y elija Punto de interrupción, Insertar punto de interrupción en el menú contextual (teclado: F9. El depurador interrumpe la ejecución inmediatamente antes de que se ejecute la línea.
Los puntos de interrupción proporcionan un amplio conjunto de funcionalidades adicionales en Visual Studio, como los puntos de interrupción condicionales y de seguimiento. Vea Puntos de interrupción: Usar números de llamadas, funciones de pila de llamadas y condiciones para realizar interrupciones cuando y donde quiera en el depurador de Visual Studio.
Interrumpir el código manualmente
Para interrumpir en la siguiente línea de código disponible de una aplicación en ejecución, elija Depurar, Interrumpir todos (teclado: Ctrl+Alt+Break).
Si está depurando con la opción Solo mi código habilitada, se interrumpe en la siguiente línea de código del proyecto. Vea Restrict stepping to Just My Code.
Si depura varios programas, un punto de interrupción o el comando Interrumpir todos afecta de forma predeterminada a todos los programas que se están depurando. Vea Configure the execution behavior of multiple processes.
Si interrumpe el código mientras se está ejecutando sin los archivos de código fuente o de símbolos (archivos .pdf) correspondientes, el depurador muestra una página con el mensaje No se encontraron archivos de código fuente o No se encontraron símbolos que le permitirá encontrar los archivos adecuados. Vea Especificar archivos de código fuente y símbolos (.pdb) en el depurador de Visual Studio.
Si no puede obtener acceso a los archivos de compatibilidad, aún puede depurar las instrucciones de ensamblado en la ventana Desensamblado.
Contents | Break into code, step or run through code, set the next statement to execute
Ejecutar el código paso a paso por instrucciones, por procedimientos o para salir
Uno de los procedimientos de depuración más comunes es la ejecución paso a paso. En este procedimiento, se ejecuta el código línea por línea. Cuando se detiene la ejecución, por ejemplo, cuando se ejecuta el depurador hasta un punto de interrupción, puede usar tres comandos del menú Depurar para recorrer el código paso a paso:
Comando de menú |
Método abreviado de teclado |
Descripción |
---|---|---|
Paso a paso por instrucciones |
F11 |
Si la línea contiene una llamada a una función, Paso a paso por instrucciones sólo ejecuta la llamada en sí y, a continuación, se detiene en la primera línea de código incluida en la función. En caso contrario, Paso a paso por instrucciones ejecuta la siguiente instrucción. |
Paso a paso por procedimientos |
F10 |
Si la línea contiene una llamada a una función, Paso a paso por procedimientos ejecuta la función llamada y, a continuación, se detiene en la primera línea de código incluida en la función de llamada. En caso contrario, Paso a paso por instrucciones ejecuta la siguiente instrucción. |
Paso a paso para salir |
Shift+F11 |
Paso a paso para salir reanuda la ejecución del código hasta que regresa la función y, a continuación, se interrumpe en el punto devuelto de la función de llamada. |
En una llamada a una función anidada, Paso a paso por instrucciones llega hasta la función más profundamente anidada. Si utiliza Paso a paso por instrucciones en una llamada como Func1(Func2()), el depurador ejecuta paso a paso las instrucciones de la función Func2.
El depurador recorre paso a paso las instrucciones del código en lugar de las líneas físicas. Por ejemplo, una cláusula if se puede escribir en una línea:
int x = 42; string s = "Not answered"; if( int x == 42) s = "Answered!";
Dim x As Integet = 42 Dim s As String = "Not answered" If x = 42 Then s = "Answered!"
Cuando esta línea se ejecuta paso a paso por instrucciones, el depurador trata la condición como un paso y el resultado como otro (en este ejemplo, la condición es true).
Para realizar un seguimiento visual de la pila de llamadas mientras se depuran paso a paso las funciones, vea Asignar métodos en la pila de llamadas durante la depuración en Visual Studio.
Contents | Break into code, step or run through code, set the next statement to execute
Ejecutar hasta una ubicación o función determinada
En algunas ocasiones, puede que desee ejecutar el código hasta un punto determinado y después detener la ejecución. Si ha establecido un punto de interrupción en la ubicación en la que desea interrumpir, elija Depurar, Iniciar depuración si no ha iniciado la depuración, o Depurar, Continuar. (En ambos casos F5 es la tecla de método abreviado). El depurador se detiene en el punto de interrupción siguiente en la ejecución del código. Elija Depurar, Continuar hasta que llegue al punto de interrupción que desea.
También puede ejecutar hasta el punto donde haya colocado el cursor en el editor de código o hasta una función específica.
Ejecutar un proceso hasta la ubicación del cursor
Para ejecutar un proceso hasta la ubicación del cursor, coloque el cursor en una línea de código ejecutable de una ventana de código fuente. En el menú contextual del editor, elija Ejecutar hasta el cursor.
Ejecutar un proceso hasta una función de la pila de llamadas
En la ventana Pila de llamadas, seleccione la función y elija Ejecutar hasta el cursor en el menú contextual. Para realizar un seguimiento visual de la pila de llamadas, vea Asignar métodos en la pila de llamadas durante la depuración en Visual Studio.
Ejecutar un proceso hasta una función especificada por nombre
Puede indicar al depurador que ejecute la aplicación hasta que llegue a una función especificada. Puede especificar la función por su nombre o elegirla en la pila de llamadas.
Para especificar una función por su nombre, elija Depurar, Nuevo punto de interrupción, Interrumpir en función y escriba el nombre de la función y otra información de identificación.
Si la función se sobrecarga o está en varios espacios de nombres, puede elegir las funciones que desee en el cuadro de diálogo Elegir puntos de interrupción.
Contents | Break into code, step or run through code, set the next statement to execute
Establecer la siguiente instrucción que se debe ejecutar
Después de interrumpir el depurador, puede mover el punto de ejecución para establecer la siguiente instrucción de código que se debe ejecutar. Una flecha amarilla en el margen de una ventana de código fuente o de la ventana Desensamblado indica la ubicación de la siguiente instrucción que se debe ejecutar. Moviendo esta flecha, puede saltarse una parte del código o volver a una línea previamente ejecutada. Puede utilizar esto en situaciones como la omisión de una sección de código que contiene un error conocido.
Para establecer la siguiente instrucción que se debe ejecutar, siga uno de estos procedimientos:
En una ventana de código fuente, arrastre la flecha amarilla hasta la ubicación en la que desea establecer la siguiente instrucción, dentro del mismo archivo de código fuente.
En una ventana de código fuente, establezca el cursor en la línea que desea ejecutar a continuación y elija Establecer instrucción siguiente en el menú contextual.
En la ventana Desensamblado, establezca el cursor en la instrucción de ensamblado que desea ejecutar a continuación y elija Establecer instrucción siguiente en el menú contextual.
Precaución |
---|
Al establecer la siguiente instrucción, el contador del programa salta directamente a la nueva ubicación.Utilice este comando con precaución.
|
Nota |
---|
En código administrado, no puede mover la instrucción siguiente en las situaciones siguientes:
|
No se puede establecer la siguiente instrucción mientras se está ejecutando activamente la aplicación. Para establecer la siguiente instrucción, el depurador debe estar en modo de interrupción.
Contents | Break into code, step or run through code, set the next statement to execute
Restringir la ejecución paso a paso a Solo mi código
Puede que, durante la depuración, desee examinar únicamente el código que ha escrito y pasar por alto otro código, como el correspondiente a las llamadas al sistema. Puede hacer esto mediante la depuración de Sólo mi código. Sólo mi código oculta el código de no usuario para que no aparezca en las ventanas del depurador. Mientras avanza, el depurador avanza paso a paso a través del código de no usuario, pero no se detiene en él. Vea Solo mi código.
Nota |
---|
Sólo mi código no se admite para los proyectos de dispositivos. |
Contents | Break into code, step or run through code, set the next statement to execute
Ir a llamadas del sistema
Si ha cargado símbolos de depuración para el código del sistema y Solo mi código no está habilitado, puede ir a una llamada del sistema al igual que lo haría con cualquier otra llamada.
Para obtener información sobre cómo deshabilitar Solo mi código, vea Restrict stepping to Just My Code
Para tener acceso a los archivos de símbolos de Microsoft, vea Use symbol servers to find symbol files not on your local machine en el tema Especificar archivos de código fuente y símbolos (.pdb) en el depurador de Visual Studio.
Para cargar los símbolos de un componente del sistema específico durante la depuración:
Abra la ventana Módulos (teclado: Ctrl+Alt+U).
Seleccione el módulo para el que desea cargar los símbolos.
Puede indicar qué módulos tienen cargados los símbolos examinando la columna Estado del símbolo.
Elija Cargar símbolos en el menú contextual.
Contents | Break into code, step or run through code, set the next statement to execute
Ir a propiedades y operadores en código administrado
El depurador se salta las propiedades y los operadores en código administrado de forma predeterminada. En la mayoría de los casos, esto proporciona una mejor experiencia de depuración. Para que el depurador vaya a las propiedades y los operadores, elija Depuración, Opciones y configuración. En la página Depuración, General, desactive la casilla Saltar propiedades y operadores (solo administrado).
Contents | Break into code, step or run through code, set the next statement to execute
Detener y reiniciar la depuración y desasociar del proceso depurado
Detener la depuración significa terminar la sesión de depuración. Detener la ejecución significa terminar el proceso en depuración y finalizar la sesión de depuración. No debe confundirse con interrumpir la ejecución, que significa detener temporalmente la ejecución del proceso en depuración pero dejando la sesión de depuración activa. Cuando se desasocia de un proceso, se detiene la depuración del proceso pero se permite que siga ejecutándose.
- Stop debugging from VS**|Close the app that is being debugged|Restart debugging|**Detach from the debugged app
Detener la depuración de VS
Elija Depurar, Detener depuración para finalizar el proceso que esté depurando cuando el programa se inició en Visual Studio. Si se asoció al proceso en lugar de iniciarlo desde Visual Studio, el proceso seguirá ejecutándose.
Contents | Stop, restart debugging; detach from the debugged process
Cerrar la aplicación que se está depurando
Cuando se cierra una aplicación que se está depurando, la depuración se detiene automáticamente.
Reiniciar la depuración
Elija Depuración, Reiniciar para detener la sesión de depuración actual y reiniciar el proyecto de inicio en el depurador.
Contents | Stop, restart debugging; detach from the debugged process
Desasociar de la aplicación depurada
Elija Depurar, Desasociar todo para detener la depuración y permitir que el proceso o procesos depurados se ejecuten.
Sugerencia |
---|
Vea Crear asociaciones con procesos en ejecución con el depurador de Visual Studio y Depurar uno o varios procesos en Visual Studio para obtener más información sobre cómo asociarse a varios procesos y controlarlos con Visual Studio. |
Contents | Stop, restart debugging; detach from the debugged process