Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
resultInt44.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.