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.
Navigace v kódu s historickým laděním
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ě:
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).
Nastavte zarážku na
Console.WriteLine(resultInt);
řádku.Spuštění ladění Kód se spustí na zarážku. V okně Místní hodnoty vidíte, že hodnota
resultInt
je 44.Otevřete okno Diagnostické nástroje (Zobrazit diagnostické nástroje ladění>). Okno kódu by mělo vypadat takto:
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:
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 lincej = 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.Nyní proveďte krok do
AddInt()
metody. V tomto kódu by se měla okamžitě zobrazit chyba.
Související obsah
Tento postup právě poškrábal povrch toho, co můžete dělat s historickým laděním.
- Pokud chcete při ladění zobrazit snímky, přečtěte si téma Kontrola předchozích stavů aplikace pomocí IntelliTrace.
- Další informace o různých nastaveních a efektech různých tlačítek v navigačním hřbetu najdete v tématu Funkce IntelliTrace.