Udostępnij za pośrednictwem


Debugowanie aplikacji przez rejestrowanie wykonywania kodu za pomocą funkcji IntelliTrace

Spędzisz mniej czasu na debugowaniu aplikacji w Visual Studio, jeśli będziesz używać IntelliTrace do rejestrowania i śledzenia historii wykonywania kodu.Możesz szybciej znajdować błędy bez ustawiania wielu punktów przerwania, ponieważ IntelliTrace umożliwia:

  • Rejestrowanie konkretnych zdarzeń, które miały miejsce w aplikacji.

    Można sprawdzić kod powiązane, dane wyświetlane w Zmienne lokalne okna podczas debuger zdarzenia i informacje o wywołaniu funkcji, jeśli zdecydujesz się zbierania.

  • Ogranicz ponowne uruchamianie aplikacji w celu odtwarzania błędów lub zdarzeń.

  • Usuwaj błędy, które są trudne do odtworzenia lub występują podczas wdrażania.

Oto jak rejestrowanie zdarzeń może ułatwić znalezienie błędu w kodzie:

Przepływ wysokiego poziomu tylko - zdarzenia IntelliTrace

Co chcesz zrobić?

Debugowanie aplikacji za pomocą IntelliTrace w programie Visual Studio:

  • Pokaż poprzednie zdarzenia.

  • Pokaż informacje wywołań w poprzednich zdarzeniach.

  • Zapisz sesję IntelliTrace.

  • Kontroluj dane zbierane za pomocą IntelliTrace.

Zbieraj dane IntelliTrace podczas sesji testowej w programie Test Manager

Zbieraj dane IntelliTrace z aplikacji we wdrażaniu

Uruchom debugowanie z pliku dziennika IntelliTrace (plik iTrace).

CZĘSTO ZADAWANE PYTANIA

  • Jakie aplikacje można debugować za pomocą IntelliTrace?

  • Dlaczego debugować za pomocą IntelliTrace?

  • Jakie dane są zbierane przez IntelliTrace?

  • Czy IntelliTrace spowolni moją aplikację?

Jakie aplikacje można debugować za pomocą IntelliTrace?

Obsługiwane

Ograniczona obsługa

  • Aplikacje F# na zasadach eksperymentalnych

  • Aplikacje Sklepu Windows obsługiwane tylko pod kątem zdarzeń

Nieobsługiwane

  • C++, inne języki i skrypty

  • Usługi systemu Windows, Silverlight, Xbox, lub Windows Mobile aplikacji

[!UWAGA]

Jeśli chcesz debugować proces, który jest już uruchomiony, nie możesz użyć IntelliTrace.IntelliTrace należy uruchomić, gdy proces jest uruchamiany.

Dlaczego debugować za pomocą IntelliTrace?

Tradycyjny lub live debugowanie pokazuje tylko swoją aplikację aktualnej z ograniczoną dane dotyczące ostatniego zdarzenia.Musisz albo wywnioskować te zdarzenia na podstawie bieżącego stanu aplikacji lub musisz odtworzyć te zdarzenia, ponownie uruchamiając aplikację.

IntelliTrace rozszerza standardowe debugowanie poprzez zapisywanie określonych zdarzeń i danych w konkretnym czasie.Dzięki temu możesz zobaczyć, co wydarzyło się w aplikacji bez ponownego jej uruchamiania, zwłaszcza jeśli znajdujesz się już dalej niż tam, gdzie występował błąd.Funkcja IntelliTrace jest domyślnie włączana podczas standardowego debugowania i zbiera dane automatycznie i w sposób niewidoczny.W ten sposób można łatwo przełączać się między standardowym debugowaniem i debugowaniem IntelliTrace, aby wyświetlić zapisane informacje.Zobacz Rejestrowanie wykonywania kodu podczas debugowania przy użyciu funkcji IntelliTrace i dane, które gromadzi IntelliTrace?

Funkcja IntelliTrace może również debugować błędy, które są trudne do odtworzenia lub mają miejsce we wdrożeniu.Możesz zbierać dane IntelliTrace i zapisywać je do pliku dziennika IntelliTrace (plik iTrace).Plik iTrace zawiera szczegóły dotyczące wyjątków, zdarzeń dotyczących wydajności, żądań sieci Web, danych testowych, wątków, modułów i innych informacji o systemie.Możesz otworzyć ten plik w Visual Studio Ultimate, wybrać element i rozpocząć debugowanie za pomocą IntelliTrace.Dzięki temu możesz przejść do dowolnego zdarzenia w pliku i zobaczyć szczegółowe informacje na temat aplikacji w danym momencie.

Możesz zapisywać dane IntelliTrace z następujących źródeł:

Oto kilka przykładów, jak IntelliTrace może pomóc w debugowaniu:

  • Twoja aplikacja ma uszkodzony plik danych, ale nie wiesz, gdzie miało miejsce to zdarzenie.

    Nie mając IntelliTrace, musisz szukać kodu, aby znaleźć wszystkie możliwe dostępy do pliku, ustalić punkty przerwania w tych dostępach i ponownie uruchomić aplikację, aby znaleźć miejsce wystąpienia problemu.Mając IntelliTrace, możesz zobaczyć wszystkie zebrane zdarzenia dostępu do pliku i szczegółowe informacje o aplikacji podczas każdorazowego wystąpienia zdarzenia.

  • Ma miejsce wyjątek.

    Bez IntelliTrace pojawia się komunikat o wyjątku, ale nie masz wielu informacji o zdarzeniach, które doprowadziły do niego.Możesz analizować stos wywołań, aby zobaczyć łańcuch wywołań, który doprowadził do wyjątku, ale nie widać sekwencji zdarzeń, które wystąpiły podczas tych wywołań.Z IntelliTrace można sprawdzić zdarzenia, które miały miejsce przed wystąpieniem wyjątku.

  • Twoja aplikacja przestaje działać na komputerze testowym, ale pomyślnie działa na komputerze deweloperskim.

    Możesz zbierać dane IntelliTrace z Microsoft Test Manager, zapisać dane w pliku iTrace i dołączyć ten plik do elementu pracy programu Team Foundation Server, aby przeprowadzić późniejszą analizę.Zobacz Zbieranie większej ilości danych diagnostycznych podczas wykonywania testów ręcznych i Debugowanie aplikacji przy użyciu zapisanych danych funkcji IntelliTrace.

  • Błąd lub awaria w aplikacji we wdrażaniu.

    Aplikacje oparte na Azure firmy Microsoft można skonfigurować zbieranie danych IntelliTrace przed opublikowaniem aplikacji.Podczas wykonywania aplikacji IntelliTrace zapisuje dane w pliku iTrace.Zobacz Debugowanie usługę w chmurze opublikowanej z IntelliTrace i Visual Studio.

    W przypadku aplikacji ASP.NET sieci Web obsługiwanych przez usługi IIS 7.0, 7.5 i 8.0 oraz aplikacji SharePoint 2010 lub SharePoint 2013 możesz używać programu Microsoft Monitoring Agent, samego lub w połączeniu z System Center 2012, aby zapisywać dane IntelliTrace w pliku iTrace.

    Jest to przydatne, gdy chcesz zdiagnozować problemy z aplikacjami w trakcie wdrażania.Zobacz Gromadzenie danych diagnostycznych w środowisku produkcyjnym przy użyciu autonomicznego modułu zbierającego dane funkcji IntelliTrace.

Jakie dane są zbierane przez IntelliTrace?

Zbieranie informacji o zdarzeniach

Domyślnie IntelliTrace tylko rekordy zdarzenia IntelliTrace.Są to zdarzenia debugera, wyjątki, zdarzenia .NET Framework i inne zdarzenia systemowe, które mogą być pomocne w debugowaniu.Możesz wybrać typy zdarzeń IntelliTrace, które mają być zbierane, z wyjątkiem zdarzeń debugera i wyjątków, które są zawsze zbierane.Zobacz Konfigurowanie funkcji IntelliTrace do gromadzenia informacji debugowania.

  • Zdarzenia debugera

    IntelliTrace zawsze zapisuje zdarzenia mające miejsce w debugerze Visual Studio.Uruchamianie aplikacji jest na przykład zdarzeniem debugera.Inne zdarzenia debugera są zdarzeniami zatrzymującymi, które powodują przerwanie wykonywania aplikacji.Na przykład program trafi punktu przerwania, trafi tracepoint lub wykonuje krok polecenia.

    Aby poprawić wydajność, IntelliTrace nie zapisuje każdej możliwej wartości dla zdarzenia debugera.Zamiast tego zapisuje następujące wartości:

    • Wartości w Zmienne lokalne okna.Zachowaj Zmienne lokalne okno otwarte, aby wyświetlić te wartości.

    • Wartości w Autos tylko wtedy, gdy okno Autos jest otwarte okno

    • Wartości w DataTips, które są wyświetlane, gdy ustawisz wskaźnik myszy nad zmienną w oknie źródłowym, aby zobaczyć jej wartość.IntelliTrace nie zbiera wartości w unieruchomionych DataTips.

  • Wyjątki

    IntelliTrace zapisuje typ wyjątku i komunikat dla tego rodzaju wyjątków:

    • Obsługiwane wyjątki, gdy wyjątek jest generowany i przechwycony

    • Nieobsługiwane wyjątki

  • Zdarzenia .NET Framework

    IntelliTrace domyślnie zapisuje najbardziej typowe zdarzenia .NET Framework.Na przykład:

    • W przypadku zdarzenia dostępu do plików IntelliTrace zbiera nazwę pliku.

    • W przypadku zdarzenia sprawdzania pola wyboru IntelliTrace zbiera stan pola wyboru i tekst.

  • Zdarzenia aplikacji programów SharePoint 2010 i SharePoint 2013

    Można zapisać zdarzenia dotyczące profili użytkowników i zdarzenia w podzbiorze Unified Logging System (ULS) do aplikacji SharePoint 2010 i 2013 działających poza programem Visual Studio.Zdarzenia te można zapisać w pliku iTrace.Wymaga albo programu Visual Studio Ultimate 2013 lub agenta Microsoft Monitoring Agent działających w śledzenia trybu.

    Po otwarciu pliku iTrace wprowadź identyfikator korelacji programu SharePoint, aby znaleźć odpowiadające mu żądanie sieci Web, zobaczyć zarejestrowane zdarzenia i rozpocząć debugowanie od określonego zdarzenia.Jeśli plik zawiera nieobsłużone wyjątki, można wybrać identyfikator korelacji, aby uruchomić debugowanie wyjątku.

    Zobacz:

Zbieranie informacji o wywołaniu funkcji

Możesz skonfigurować IntelliTrace, aby zbierać informacje dotyczące wywołań dla funkcji.Te informacje pozwalają wyświetlać historię stosu wywołań i umożliwiają poruszanie się w wywołaniach kodu w dowolnym kierunku.W przypadku każdego wywołania funkcji IntelliTrace rejestruje następujące dane:

  • Nazwa funkcji

  • Wartości pierwotnych typów danych przekazywanych jako parametry w punktach wejścia do funkcji i zwracanych w punktach wyjścia z funkcji

  • Wartości właściwości automatycznych, gdy są one odczytywane lub zmieniane

  • Wskaźniki do pierwszego poziomu obiektów podrzędnych, ale nie ich wartości inne, niż gdyby były równe null lub nie

[!UWAGA]

IntelliTrace zbiera tylko 256 pierwszych obiektów w tablicach i pierwszych 256 znaków w ciągach.

Zobacz Konfigurowanie funkcji IntelliTrace do gromadzenia informacji debugowania.

Zbieranie informacji o modułach

Aby kontrolować, ile informacji na temat wywołania gromadzi IntelliTrace, określ tylko te moduły, która Cię interesują.Może to zwiększyć wydajność aplikacji podczas procesu zbierania.Zobacz Konfigurowanie funkcji IntelliTrace do gromadzenia informacji debugowania.

Czy IntelliTrace spowolni moją aplikację?

IntelliTrace domyślnie zbiera dane tylko dla wybranych zdarzeń IntelliTrace.To może spowolnić działanie aplikacji lub nie, w zależności od struktury i organizacji kodu.Jeśli na przykład IntelliTrace często zapisuje zdarzenie, może to spowolnić aplikację, ale może być to również monit dotyczący rozważenia refaktoryzacji aplikacji.

Gromadzenie informacji o wywołaniach może znacznie spowolnić aplikację.Może to również zwiększyć rozmiar wszystkich plików dziennika IntelliTrace (iTrace) zapisywanych na dysku.Aby zminimalizować te skutki, zbieraj informacji o wywołaniach tylko interesujących Cię modułów.Aby zmienić maksymalny rozmiar plików .iTrace, przejdź do narzędzia, Opcje, IntelliTrace, Zaawansowane.Zobacz Konfigurowanie funkcji IntelliTrace do gromadzenia informacji debugowania.

Gdzie można uzyskać więcej informacji?

Rejestrowanie wykonywania kodu podczas debugowania przy użyciu funkcji IntelliTrace

Konfigurowanie funkcji IntelliTrace do gromadzenia informacji debugowania

Dołączanie danych diagnostycznych śledzenia z usterkami trudnymi do odtworzenia

Konfigurowanie wersji do diagnozowania problemów po wdrożeniu

Debugowanie aplikacji przy użyciu zapisanych danych funkcji IntelliTrace

Blogi

Programu visual Studio ALM + Team Foundation Server

Fora

Programu visual Studio diagnostyki

Wskazówki

Testowania dla dostarczania ciągłego z programu Visual Studio 2012 w rozdziale 6: testowania przybornika