Udostępnij za pośrednictwem


Rejestrowanie wykonywania kodu podczas debugowania przy użyciu funkcji IntelliTrace

Aby zapisać i śledzić historię wykonania kodu lub aplikacji za pomocą IntelliTrace w Visual Studio Ultimate, rozpocznij standardowe debugowanie.Domyślnie IntelliTrace jest włączony i automatycznie zapisuje określone zdarzenia i dane, więc możesz łatwo zobaczyć, co wydarzyło się w aplikacji.Zobacz Debugowanie aplikacji przez rejestrowanie wykonywania kodu za pomocą funkcji IntelliTrace.

Aby potwierdzić, że IntelliTrace jest włączony:

Włączać lub wyłączać IntelliTrace w programie Visual Studio

[!UWAGA]

Czyszczenie Włącz IntelliTrace wyłącza wszystkie niestandardowe ustawienia IntelliTrace.Te ustawienia dotyczą wszystkich projektów i rozwiązań.Utrzymują się między sesjami debugowania i sesjami programu Visual Studio.

Co chcesz zrobić?

  • Debuguj tylko z uwzględnieniem zdarzeń

  • Wybierz zdarzenia, które są zapisywane przez IntelliTrace

  • Debuguj z uwzględnieniem zdarzeń i informacji wywołań

  • Kontroluj, ile informacji wywołań jest zapisywanych przez IntelliTrace

  • Zapisz sesję IntelliTrace

Debuguj tylko z uwzględnieniem zdarzeń

Możesz spróbować debugowania tylko z uwzględnieniem zdarzeń IntelliTrace, aby przekonać się, czy tylko ta operacja pozwoli na znalezienie błędu.Zdarzenia IntelliTrace są zdarzeniami debugera, wyjątkami, zdarzeniami .NET Framework i innymi zdarzeniami systemowymi.Możesz włączyć lub wyłączyć określone zdarzenia, aby kontrolować zdarzenia, które są zapisywane przez IntelliTrace, ale zrób to przed rozpoczęciem debugowania.

Oto graficzne przedstawienie debugowania tylko zdarzeń IntelliTrace:

Zdarzenia IntelliTrace tylko - odtworzenia usterki

Zdarzenia IntelliTrace tylko — szczegóły zdarzenia i kodu

Zdarzenia IntelliTrace tylko - znalezione usterki

Powrót do początku

Oto szczegółowe etapy dotyczące debugowania tylko z uwzględnieniem zdarzeń IntelliTrace:

  1. Rozpocznij standardowe debugowanie.Dokonaj odtworzenia błędu.

    PoradaPorada

    Zachowaj otwarte okna Lokalne i Automatyczne, aby zobaczyć i zapisać wartości podane w tych oknach.Aby rozpocząć debugowanie, naciśnij klawisz F5 lub zaznacz Debuguj w menu, a następnie wybierz Rozpocznij debugowanie.Jeśli nie widzisz okna IntelliTrace podczas uruchamiania debugowania, IntelliTrace może nie być włączony lub okno może być zamknięte.Aby otworzyć okno IntelliTrace, wybierz Debuguj, IntelliTrace, Zdarzenia IntelliTrace.

  2. Przerwij manualnie wykonywanie danej aplikacji.

    PoradaPorada

    W menu Debuguj menu lub w oknie IntelliTrace wybierz opcję Przerwij wszystkie.

    Teraz widać chronologiczną listę zdarzeń w oknie IntelliTrace, zaczynającą się od góry pierwszym zdarzeniem i kończącą na ostatnim zdarzeniu, gdy debuger przerwał wykonywanie.

    Zdarzenia diagnostyczne wyświetlanie okna IntelliTrace

  3. Znajdź zdarzenie najbliższe odtworzonemu błędowi. W tym przypadku było to, zanim aplikacja przerwała wykonywanie.

  4. Wybierz zdarzenie, aby rozwinąć jego szczegóły.

    • Jeśli kod źródłowy jest dostępny, Visual Studio przesuwa wskaźnik myszy do odpowiedniego kodu w oknie źródłowym, tak aby można było go sprawdzić.

    • Aby wyświetlić dane, które są zapisane przez IntelliTrace, kiedy wystąpiło zdarzenie, wybierz łącze Widoki pokrewne, aby wyświetlić odpowiednie okna debugera.

    • Jeśli zdarzenie dotyczy dostępu do plików, wybierz nazwę ścieżki, aby otworzyć plik.Jeśli pełna ścieżka nie jest dostępna, znajdź plik, używając pojawiającego się pola wyszukiwania.

  5. Jeśli nie możesz znaleźć błędu, spróbuj sprawdzić inne zdarzenia prowadzące do błędu.IntelliTrace może również zapisać informacje wywołania, tak aby można było przechodzić przez wywołania funkcji.

Powrót do początku

Wybierz zdarzenia, które są zapisywane przez IntelliTrace

Można włączyć lub wyłączyć zapisywanie dla określonych zdarzeń IntelliTrace, poza zdarzeniami debugera i wyjątkami, które są zawsze zapisywane przez IntelliTrace.

  1. Jeśli debugujesz, przerwij ten proces.W przeciwnym razie ponownie rozpocznij debugowanie po wybraniu zdarzeń.

  2. Przejdź do Narzędzia, Opcje, IntelliTrace, Zdarzenia IntelliTrace.Wybierz zdarzenia i kategorie zdarzeń do zapisanie przez IntelliTrace.

    Konfigurowanie zbierania zdarzeń IntelliTrace

Powrót do początku

Debuguj z uwzględnieniem zdarzeń i informacji wywołań

Jeśli musisz zbadać sekwencję wywołań funkcji aplikacji, aby znaleźć błąd, IntelliTrace może zapisać wywołania funkcji wraz z wydarzeniami.Pozwala to wyświetlać historię stosu wywołań, poruszać się w dowolnym kierunku wywołań w kodzie, wyświetlać dane zapisane przez IntelliTrace, takie jak nazwy funkcji, ich punkty wejścia i wyjścia oraz niektóre wartości parametrów i wartości zwracane.Zobacz Debugowanie aplikacji przez rejestrowanie wykonywania kodu za pomocą funkcji IntelliTrace.

  1. Jeśli debugujesz, przerwij ten proces.W przeciwnym razie ponownie uruchom debugowanie po włączeniu kolekcji wywołań.

  2. Włącz kolekcję wywołań.

    Konfigurowanie zbierania połączenia dla IntelliTrace

    PoradaPorada

    Może to spowolnić aplikację i zwiększyć rozmiar plików dziennika IntelliTrace (pliki .iTrace), które są zapisywane na dysku.Aby uzyskać najwięcej danych wywołań, ale zminimalizować skutki, zapisz dane tylko z tych modułów, które Cię interesują.Aby zmienić maksymalny rozmiar plików .iTrace, przejdź do Narzędzia, Opcje, IntelliTrace, Zaawansowane.

  3. Rozpocznij standardowe debugowanie.Dokonaj odtworzenia błędu.

    PoradaPorada

    Zachowaj okna Lokalne i Automatyczne, aby zobaczyć i zapisać wartości podane w tych oknach.Aby rozpocząć debugowanie, naciśnij klawisz F5 lub zaznacz Debuguj w menu, a następnie wybierz Rozpocznij debugowanie.Jeśli nie widzisz okna IntelliTrace podczas uruchamiania debugowania, IntelliTrace może nie być włączony lub okno może być zamknięte.Aby otworzyć okno IntelliTrace, wybierz Debuguj, IntelliTrace, Zdarzenia IntelliTrace.

  4. Przerwij manualnie wykonywanie danej aplikacji.

    PoradaPorada

    W menu Debuguj menu lub w oknie IntelliTrace wybierz opcję Przerwij wszystkie.

  5. Znajdź zdarzenie najbliższe odtworzonemu błędowi.Zobacz Debuguj tylko z uwzględnieniem zdarzeń.

  6. Wybierz zdarzenie, aby rozwinąć jego szczegóły.Obok opcji Widoki pokrewne wybierz opcję Widok wywołań.

    Zdarzenia diagnostyczne wyświetlanie okna IntelliTrace

    Teraz możesz wyświetlić historię stosu wywołań aplikacji, zaczynającą się u góry wywołania głównego aplikacji i kończącą się na bieżącym wydarzeniu podobnym do wybranego zdarzenia, ale nie bieżącego w czasie rzeczywistym.

    Widok wywołuje okno IntelliTrace

    Kolejna lista, w pozycji wcięcia w obrębie bieżącego wywołania, wyświetla wywołania, które bieżące wywołanie wykonało w odniesieniu do innych funkcji.Lista w pozycji wcięcia zawiera również zdarzenia IntelliTrace dla bieżącego wywołania.

    [!UWAGA]

    Wywołania są wyszarzone, ponieważ IntelliTrace nie zapisał danych z odpowiednich modułów.Aby wyświetlić te dane, spraw, aby IntelliTrace zebrał dane z tych modułów.

  7. Znajdź wywołanie następujące po wybranym zdarzeniu.Kliknij dwukrotnie to wywołanie, aby można było do niego przejść.

    W oknie Widok wywołań wybrane wywołanie jest teraz nowym bieżącym wywołaniem na dole stosu wywołań.Lista w pozycji wcięcia zawiera obecnie wywołania i zdarzenia dla nowego wywołania bieżącego.Okno źródłowe i okna debugera są aktualizowane dla nowego wywołania bieżącego.

    PoradaPorada

    Jeśli chcesz tylko wyświetlić stronę wywołań, kliknij jeden raz na wywołanie w oknie Widok wywołań zamiast dwukrotnego klikania.Przesuwa to wskaźnik do strony wywołania, ale nie przenosi do wywołania, tak że jesteś jeszcze w wywołaniu bieżącym.

  8. Aby przejść przez wywołania i zdarzenia, użyj marginesu nawigacyjnego pojawiającego się obok okna źródłowego, gdy informacja wywołania jest dostępna.Jeśli nie widzisz marginesu nawigacyjnego, przejdź do Narzędzia, Opcje, IntelliTrace, Zaawansowane.Wybierz Wyświetl margines nawigacyjny w trybie debugowania.

    Ustaw kontekst debugera tutaj

    Ustaw kontekst debugowania dla parametrów czasowych wywołania tam, gdzie się pojawia.

    Ikona ta pojawia się na każdej ramce bieżącego stosu wywołań.

    Wróć do strony wywołań

    Przenieść wskaźnik i kontekst debugowania do czasu, gdy wywołana została funkcja bieżąca.

    Jeśli jesteś w standardowym trybie debugowania, to polecenie powoduje uruchomienie debugowania za pomocą IntelliTrace.

    Przejdź do poprzedniego wywołania lub zdarzenia IntelliTrace

    Przenieść wskaźnik i kontekst debugowania do czasu, gdy wywołana została funkcja bieżąca lub wydarzenie.

    Jeśli jesteś w standardowym trybie debugowania, to polecenie powoduje uruchomienie debugowania za pomocą IntelliTrace.

    Przejdź do

    Przenieść wskaźnik i kontekst debugowania do czasu wybranej funkcji bieżącej.

    To polecenie jest dostępne tylko wtedy, gdy debugujesz za pomocą IntelliTrace.

    Przejdź do kolejnego wywołania lub zdarzenia IntelliTrace

    Przenieść wskaźnik i kontekst debugowania do czasu kolejnego wywołania lub zdarzenia, dla których istnieją dane IntelliTrace.

    To polecenie jest dostępne tylko wtedy, gdy debugujesz za pomocą IntelliTrace.

    Przejdź do trybu na żywo

    Wróć do standardowego debugowania, które wcześniej uruchomiono za pomocą IntelliTrace.

  9. Aby znaleźć konkretne wystąpienie wywołania, przeszukaj historię IntelliTrace dla zapisanych wystąpień danego wywołania:

    1. Z wiersza kodu, w którym dochodzi do wywołania:

      Znajdź wystąpienie połączenia podczas debugowania IntelliTrace

      [!UWAGA]

      Jeśli wiersz jest wyjściem metody, nie będzie można uzyskać dokładnych wyników.

      - lub -

      Z poziomu wewnątrz treści funkcji, która jest wywoływana:

      1. Upewnij się, że plik projektu zawierający funkcję jest otwarty w programie Visual Studio.

      2. Otwórz menu skrótów w treści funkcji.Wybierz Wyszukaj dla tej metody w IntelliTrace.

    2. Przeglądaj wyniki, aby znaleźć wystąpienie, które Cię interesuje.Wybierz wystąpienie, aby zsynchronizować okno Widok wywołań i przeanalizować zapisane dane dla tego wystąpienia.

Powrót do początku

Kontroluj, ile informacji wywołań jest zapisywanych przez IntelliTrace

Program IntelliTrace może rejestrować informacje na temat wywołań tylko dla tych modułów, które Cię interesują.Może to również pomóc poprawić wydajność danej aplikacji.

Aby dodać wiele modułów, należy użyć symbolu wieloznacznego * na początku lub końcu ciągu.W przypadku nazwy modułów użyj nazw plików, nie nazw zestawów.Ścieżki plików nie są akceptowane.

Konfigurowanie zbierania modułu dla IntelliTrace

[!UWAGA]

Wyłączenie modułów może jednak nadal prowadzić do zbierania danych z modułów, które mogą nie być interesujące, takie jak moduły strony trzeciej lub moduły otwarto-źródłowe.

Powrót do początku

Zapisz sesję IntelliTrace

Aby kontynuować sesję w późniejszym czasie, zapisz ją jako plik dziennika IntelliTrace (plik .iTrace).

Zapisz manualnie sesję

Zapisz IntelliTrace ręcznie w programie Visual Studio

Zapisz automatycznie sesję

Automatyczne zapisywanie sesji IntelliTrace

PoradaPorada

Aby zaoszczędzić miejsce na dysku, wyłącz zapisywanie plików .iTrace, gdy ich już nie potrzebujesz.Pozostaną jakiekolwiek istniejące pliki .iTrace.

Visual Studio ogranicza domyślny rozmiar pliku .iTrace do 250 MB, ponieważ IntelliTrace może zbierać dużą ilość danych.Gdy rozmiar pliku osiągnie ten limit, program Visual Studio usuwa najwcześniej wpisy, aby zrobić miejsce na nowsze wpisy.Aby zapisać więcej danych niż określa to domyślny limit, zmień rozmiar maksymalnego zapisu.

Visual Studio utworzy dwa pliki .iTrace dla każdej sesji IntelliTrace, gdy są automatycznie zapisywane, oraz włączony zostaje proces hostingu (vshost.exe) Visual Studio.Visual Studio tworzy jeden plik .iTrace dla aplikacji i jeden plik .iTrace dla procesu hostingu.Proces ten poprawia wydajność debugowania, daje pewne możliwości debugowania i jest domyślnie uruchamiany.

Jakie dane zawiera plik .iTrace?

Plik .iTrace zawiera szczegóły dotyczące wyjątków, wątków, żądań sieci Web, danych testowych, modułów i innych informacji o systemie.Podczas otwierania pliku w Visual Studio Ultimate wybierz element i rozpocznij debugowanie. Możesz w danym czasie przejść do dowolnego zdarzenia w pliku, aby sprawdzić kod pokrewny i zapisać dane o swojej aplikacji.Zobacz Debugowanie aplikacji przy użyciu zapisanych danych funkcji IntelliTrace.

Aby debugować błędy lub awarie pojawiające się w trakcie testowania Menedżera testów firmy Microsoft, które są trudne do odtworzenia w środowisku programowania, spróbuj skonfigurować Menedżera testów, aby zbierał dane IntelliTrace.Możesz zapisać dane do pliku .iTrace i dołączyć do elementu pracy programu Team Foundation Server w celu przeprowadzenia dalszej analizy.Zobacz Analiza testów, które się nie powiodły i śledzenie błędów.

Aby debugować błędy lub awarie, które zdarzają się tam, gdzie nie chcesz zmienić konfiguracji systemu, np. w środowiskach produkcyjnych, spróbuj użyć autonomicznego modułu zbierającego, aby zapisywać dane IntelliTrace w pliku .iTrace.Zobacz Gromadzenie danych diagnostycznych w środowisku produkcyjnym przy użyciu autonomicznego modułu zbierającego dane funkcji IntelliTrace.

Powrót do początku

Gdzie można uzyskać więcej informacji?

Debugowanie aplikacji przez rejestrowanie wykonywania kodu za pomocą funkcji IntelliTrace

Gromadzenie danych diagnostycznych w środowisku produkcyjnym przy użyciu autonomicznego modułu zbierającego dane funkcji IntelliTrace

Debugowanie aplikacji przy użyciu zapisanych danych funkcji IntelliTrace

Blogi

Visual Studio ALM + Team Foundation Server

Fora

Visual Studio Debugger

Wskazówki

Testowanie dostarczania ciągłego w programie Visual Studio 2012 – Rozdział 6: Przybornik testowy

Filmy wideo

Wideo Channel 9: Zbieranie i analizowanie danych IntelliTrace do debugowania