TOC

This article is currently in the process of being translated into Spanish (~99% done).

Debugging:

Stepping through the code

En este capítulo, veremos como caminar através de su código paso a paso, lo cual es otra parte muy esencial de la depuración. Para este propósito, he escrito esta aplicación simple:

namespace DebugTest
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            a = a * 2;
            a = a - 3;
            a = a * 6;
            Console.WriteLine(a);
        }
    }
}

Esta simplemente manipula la variable "a" un par de veces y luego muestra el resultado final. Trate de poner un punto de receso, como se describe en el capítulo previo, en la primer línea donde la variable "a" es usada (y declarada). Ahora corra la aplicación. La ejecución se detiene y puede mover su ratón sobre la variable a, para asegurar lo que hemos aprendido en el capítulo previo es de hecho verdadero: La variable solamente contiene su valor por omisión, por que el código que asigna el valor (en este caso 5), no ha sido ejecutado aún, pero cambiemos eso. Desde el menu de Debug [Depuración], seleccione la opción "Step over", o aún mejor, use el atajo de teclado F10. La ejecución ahora procederá a la siguiente línea relevante y si usted mueve su ratón sobre la variable a, ahora verá que tiene un valor. Trate de nuevo, y verá que el valor cambia acorde a las líneas siendo ejecutadas una por una, hasta que alcance el fin.

Muy bién, eso fue muy básico, pero también muy útil, como se dará cuenta una vez que empiece a escribir código más complicado. En este ejemplo, el flujo del código fue muy simple, ya que permanecimos dentro de una sola función, pero ¿Qué pasa si su código empieza a dispersarse sobre múltiples clases o funciones? Inténte este ejemplo:

namespace DebugTest
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            int b = 2;
            int result = MakeComplicatedCalculation(a, b);
            Console.WriteLine(result);
        }

        static int MakeComplicatedCalculation(int a, int b)
        {
            return a * b;
        }
    }
}

Coloque un punto de receso en la primer línea del método Man y corra la aplicación. Ahora use la función "Step over" para andar através de cada línea. Como verá, se mueve a la función llamada sin notarlo - eso es simplemente como la depuración trabaja. Ahora, trate de nuevo, desde el inicio, y una vez que haya llegado a la línea con la llamada a MakeComplicatedCalculation(), seleccione Debug -> Step into, o use el atajo de teclado F11. El depurador ahora camina dento de la primer posible llamada de función, permitiendole caminar dentro y através de la función también. Como puede imaginar, esto le permite explorar através de bloques de código complicados, mientras entra solamente a las funciones que le interesan.

Si camina dento de una función y luego se da cuenta que sería mejor retornar al contexto previo, use la opción lógica desde el menu de Debug llamada "Step out" (el atajo del teclado es Shift+F11). Esto lo regresará al contexto previo, lo cual obviamente significa que puede entrar en tantas funciones como quiera, y luego encontrar su camino de regreso usando la opción "Step out".


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!