Kontrola aplikace pomocí historického ladění IntelliTrace v sadě Visual Studio (C#, Visual Basic, C++)

Pomocí historického ladění se můžete pohybovat vzad a vpřed spuštěním aplikace a kontrolovat její stav.

IntelliTrace můžete použít v edici Visual Studio Enterprise, ale ne v edicích Professional nebo Community.

Začněme jednoduchým programem, který má chybu. V konzolové aplikaci jazyka C# přidejte následující kód:

static void Main(string[] args)
{
    int testInt = 0;
    int resultInt = AddIterative(testInt);
    Console.WriteLine(resultInt);
}
private static int AddIterative(int j)
{
    for (int i = 0; i < 20; i++)
    {
        j = AddInt(j);
    }
    return j;
}

private static int AddInt(int add)
{
    if (add == 10)
    {
        return add += 25;
    }
    return ++add;
}

Předpokládáme, že očekávaná hodnota resultInt po volání AddIterative() je 20 (výsledek přírůstku testInt 20krát). (Předpokládáme také, že chybu nevidíte.AddInt() Ale výsledek je ve skutečnosti 44. Jak můžeme chybu najít bez procházení AddIterative() 10krát? K rychlejšímu a snadnějšímu nalezení chyby můžeme použít historické ladění. Postupujte následovně:

  1. V nástrojích > Možnosti > IntelliTrace > Obecné zkontrolujte, zda je povolena IntelliTrace, a vyberte události IntelliTrace a informace o volání. Pokud tuto možnost nevyberete, nebude možné zobrazit navigační hřbet (jak je vysvětleno níže).

  2. Nastavte zarážku na Console.WriteLine(resultInt); řádku.

  3. Spuštění ladění Kód se spustí na zarážku. V okně Místní hodnoty vidíte, že hodnota resultInt je 44.

  4. Otevřete okno Diagnostické nástroje (Zobrazit diagnostické nástroje ladění>). Okno kódu by mělo vypadat takto:

    Code window at the breakpoint

  5. Vedle levého okraje by se měla zobrazit dvojitá šipka, přímo nad zarážkou. Tato oblast se nazývá navigační hřbet a používá se k historickému ladění. Klikněte na šipku.

    V okně kódu byste měli vidět, že předchozí řádek kódu (int resultInt = AddIterative(testInt);) je barevně růžový. Nad oknem by se měla zobrazit zpráva, že jste teď v historickém ladění.

    Okno kódu teď vypadá takto:

    code window in historical debugging mode

  6. Teď můžete v navigačním hřbetu AddIterative() začít krokovat (F11 nebo tlačítko Krok do ). Krok vpřed (F10 nebo Přejít na další volání v navigačním hřbetu). Růžová čára je teď na lince j = AddInt(j); . F10 v tomto případě nekročí na další řádek kódu. Místo toho se provede další volání funkce. Historické ladění přejde z volání na volání a přeskočí řádky kódu, které neobsahují volání funkce.

  7. Nyní proveďte krok do AddInt() metody. V tomto kódu by se měla okamžitě zobrazit chyba.

Tento postup právě poškrábal povrch toho, co můžete dělat s historickým laděním.