Inspekcja aplikacji za pomocą debugowania historycznego IntelliTrace w programie Visual Studio (C#, Visual Basic, C++)
Możesz użyć debugowania historycznego, aby przejść do tyłu i do przodu przez wykonanie aplikacji i sprawdzić jej stan.
Funkcji IntelliTrace można używać w wersji Visual Studio Enterprise, ale nie wersji Professional lub Community.
Nawigowanie po kodzie przy użyciu debugowania historycznego
Zacznijmy od prostego programu, który zawiera usterkę. W aplikacji konsolowej języka C# dodaj następujący kod:
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;
}
Załóżmy, że oczekiwana wartość resultInt
po wywołaniu AddIterative()
wynosi 20 (wynik przyrostu testInt
20 razy). (Załóżmy również, że nie można zobaczyć usterki w pliku AddInt()
). Ale wynik jest rzeczywiście 44. Jak można znaleźć usterkę bez przechodzenia przez AddIterative()
10 razy? Możemy użyć debugowania historycznego, aby szybciej i łatwiej znaleźć usterkę. Oto jak to zrobić:
W obszarze Opcje > narzędzi > IntelliTrace Ogólne upewnij się, że funkcja IntelliTrace jest włączona, a następnie wybierz pozycję Zdarzenia IntelliTrace > i informacje o wywołaniu. Jeśli nie wybierzesz tej opcji, nie będzie można wyświetlić rynny nawigacji (jak wyjaśniono poniżej).
Ustaw punkt przerwania w
Console.WriteLine(resultInt);
wierszu.Uruchom debugowanie. Kod jest wykonywany w punkcie przerwania. W oknie Ustawienia lokalne widać, że wartość to
resultInt
44.Otwórz okno Narzędzia diagnostyczne (Debuguj > Pokaż narzędzia diagnostyczne). Okno kodu powinno wyglądać następująco:
Powinna zostać wyświetlona podwójna strzałka obok lewego marginesu tuż nad punktem przerwania. Ten obszar jest nazywany gutter nawigacji i służy do debugowania historycznego. Kliknij strzałkę.
W oknie kodu powinien zostać wyświetlony poprzedni wiersz kodu (
int resultInt = AddIterative(testInt);
) w kolorze różowym. Nad oknem powinien zostać wyświetlony komunikat, który jest teraz w debugowaniu historycznym.Okno kodu wygląda teraz następująco:
Teraz możesz przejść do
AddIterative()
metody (F11 lub przycisk Przejdź do w rynnach nawigacji). Krok do przodu (F10 lub Przejdź do następnego wywołania w gutter nawigacji). Różowa linia znajduje się teraz naj = AddInt(j);
linii. W tym przypadku klawisz F10 nie wykonuje kroku do następnego wiersza kodu. Zamiast tego należy wykonać kroki do następnego wywołania funkcji. Debugowanie historyczne przechodzi z wywołania do wywołania i pomija wiersze kodu, które nie zawierają wywołania funkcji.Teraz przejdź do
AddInt()
metody . W tym kodzie powinna natychmiast zostać wyświetlona usterka.
Powiązana zawartość
Ta procedura po prostu porysowała powierzchnię tego, co można zrobić za pomocą debugowania historycznego.
- Aby wyświetlić migawki podczas debugowania, zobacz Sprawdzanie poprzednich stanów aplikacji przy użyciu funkcji IntelliTrace.
- Aby dowiedzieć się więcej na temat różnych ustawień i efektów różnych przycisków w gutter nawigacji, zobacz Funkcje IntelliTrace.