Ejercicio: Establecimiento de puntos de interrupción
Los puntos de interrupción se utilizan para pausar la ejecución durante el proceso de depuración. Esto le permite realizar un seguimiento de las variables y examinar la secuencia en la que se ejecuta el código. Los puntos de interrupción son una excelente manera de iniciar el proceso de depuración.
Establecer un punto de interrupción
Anteriormente, en este módulo completó un ejercicio en el que ejecutó una aplicación en el depurador. La aplicación mostró "mensajes de saludo" en el panel CONSOLA DE DEPURACIÓN. Al final del ejercicio, notó que el código repite el saludo de Andrew de una manera inesperada.
En este ejercicio, usará un punto de interrupción para ayudarle a identificar el problema.
Asegúrese de que el archivo Program.cs contiene el ejemplo de código siguiente:
/* This code uses a names array and corresponding methods to display greeting messages */ string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" }; string messageText = ""; foreach (string name in names) { if (name == "Sophia") messageText = SophiaMessage(); else if (name == "Andrew") messageText = AndrewMessage(); else if (name == "AllGreetings") messageText = SophiaMessage(); messageText = messageText + "\n\r" + AndrewMessage(); Console.WriteLine(messageText + "\n\r"); } bool pauseCode = true; while (pauseCode == true); static string SophiaMessage() { return "Hello, my name is Sophia."; } static string AndrewMessage() { return "Hi, my name is Andrew. Good to meet you."; }Use las herramientas del depurador de Visual Studio Code para establecer un punto de interrupción en la primera línea de código dentro del
foreachbucle.
Sugerencia
Una opción fácil para activar o desactivar un punto de interrupción es seleccionar (clic con el botón izquierdo) el área a la izquierda del número de línea. Los puntos de interrupción también se pueden establecer mediante el
Runmenú y mediante métodos abreviados de teclado.En el menú Ejecutar, seleccione Iniciar depuración.
Observe que la ejecución del código se detiene en el punto de interrupción y que la línea de código actual está resaltada en el Editor.

En la barra de herramientas Controles de depuración, seleccione Depurar paso a paso por instrucciones.
Puede mantener el puntero del mouse sobre los botones de la barra de herramientas Controles de depuración para mostrar las etiquetas del botón.
Observe que la ejecución del código avanza a la siguiente línea de código y se detiene:
messageText = SophiaMessage();Esta línea de código asigna el valor devuelto del
SophiaMessagemétodo a la variablemessageTextde cadena .Dedique un momento a tener en cuenta por qué seleccionar Step Into produjo este resultado.
- El botón Avanzar se usa para avanzar a la siguiente instrucción ejecutable.
- Dado que el primer elemento de la
namesmatriz esSophiay laifinstrucción comprueba el nombreSophia, la expresión se evalúa comotruey la ejecución del código se mueve al bloque de código de laifinstrucción .
En la barra de herramientas Controles de depuración, seleccione Depurar paso a paso por instrucciones.
Observe que la ejecución del código avanza hasta el
SophiaMessagemétodo y se pausa.El botón Ingresar ha avanzado a la siguiente línea de código ejecutable. La siguiente línea de código ejecutable no es el siguiente número de línea en el archivo, es la siguiente instrucción en la ruta de ejecución. En este caso, la siguiente instrucción ejecutable es el punto de entrada al método
SophiaMessage.En la barra de herramientas Controles de depuración, seleccione Paso a paso para salir.
Observe que la ejecución del código vuelve a la línea de código que llamó al
SophiaMessagemétodo y se detiene.Dedique un momento a considerar por qué seleccionar Salir produjo este resultado.
Cuando se encuentra dentro de un método, el botón Salir completa las líneas restantes del método actual y, a continuación, vuelve al contexto de ejecución que invocó el método.
En la barra de herramientas Controles de depuración, seleccione Depurar paso a paso por instrucciones.
Observe que la ejecución del código avanza a la siguiente línea de código y se detiene:
messageText = messageText + "\n\r" + AndrewMessage();Dedique un momento a considerar por qué la ejecución llegó a esta línea de código.
Aunque la indentación de código implica que esta línea de código forma parte del bloque de código de la instrucción
else if, no es así. El uso de llaves{}para definir los bloques de código de esta estructuraif - else ifhabría ayudado a evitar este error. A medida que se escribe el código, el mensaje de Andrew se agregará amessageTextcada vez que el bucle itere.
Comprobación de las actualizaciones de código
Una vez que haya aislado un problema en el código, debe actualizar el código y, a continuación, comprobar que el problema se ha corregido.
En la barra de herramientas Controles de depuración, seleccione Detener.
Dedique un minuto a corregir la lógica del código.
Tiene algunas opciones para corregir el problema identificado en el código. Por ejemplo:
Puede mantener las líneas de código existentes y agregar llaves
{}a la estructuraifpara cada bloque de código.Puede combinar las dos líneas de código que siguen a la instrucción final
else if, formando una sola instrucción como se indica a continuación:else if (name == "AllGreetings") messageText = SophiaMessage() + "\n\r" + AndrewMessage();
En cualquier caso, el código actualizado debe incluir la llamada a
AndrewMessagedentro del bloque de código cuandoname == "AllGreetings".En el menú Archivo, seleccione Guardar.
Use las herramientas de interfaz de usuario del depurador para borrar el punto de interrupción que estableció anteriormente.
En el menú Ejecutar, seleccione Iniciar depuración.
Compruebe que el código ahora genera los resultados esperados.
Hello, my name is Sophia. Hi, my name is Andrew. Good to meet you. Hello, my name is Sophia. Hi, my name is Andrew. Good to meet you.En la barra de herramientas de Controles de depuración, seleccione Detener.
¡Felicidades! Ha usado correctamente el depurador de Visual Studio Code para ayudarle a aislar y corregir un problema lógico.
Resumen
Estos son algunos de los aspectos más importantes que debe recordar de esta unidad:
- Use puntos de interrupción para pausar la ejecución del código durante una sesión de depuración.
- Use Depurar paso a paso por instrucciones en la barra de herramientas Controles de depuración para observar la siguiente línea de código ejecutable.
- Use Paso a paso para salir en la barra de herramientas Controles de depuración para recorrer el método actual y volver a la línea de código que llamó al método.