IntelliTrace for Visual Studio Enterprise (C#, Visual Basic, C++)

Możesz poświęcić mniej czasu na debugowanie aplikacji, gdy używasz funkcji IntelliTrace do rejestrowania i śledzenia historii wykonywania kodu. Błędy można łatwo znaleźć, ponieważ funkcja IntelliTrace umożliwia wykonywanie następujących czynności:

  • Rejestrowanie określonych zdarzeń

  • Sprawdź powiązany kod, dane wyświetlane w oknie Ustawienia lokalne podczas zdarzeń debugera i informacje o wywołaniu funkcji

  • Błędy debugowania, które są trudne do odtworzenia lub które występują we wdrożeniu

Funkcji IntelliTrace można używać w programie Visual Studio Enterprise (ale nie w wersjach Professional lub Community).

Co chcesz zrobić?

Scenariusz Tytuł
Debugowanie aplikacji za pomocą funkcji IntelliTrace:

- Pokaż mi poprzednie wydarzenia.
- Pokaż mi informacje o połączeniu z przeszłymi zdarzeniami.
- Zapisz moją sesję IntelliTrace.
— Kontrolowanie danych zbieranych przez narzędzie IntelliTrace.
- Sprawdzanie poprzednich stanów aplikacji przy użyciu funkcji IntelliTrace
- Przewodnik: Używanie funkcji IntelliTrace
- Funkcje IntelliTrace
- Debugowanie historyczne
Zbieranie danych intelliTrace z wdrożonych aplikacji - Korzystanie z autonomicznego modułu zbierającego funkcji IntelliTrace
Rozpocznij debugowanie z pliku dziennika IntelliTrace (plik iTrace). - Korzystanie z zapisanych danych funkcji IntelliTrace

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

Poziom pomocy technicznej Typy aplikacji
Pełna obsługa — Aplikacje Visual Basic i Visual C# korzystające z programu .NET Framework 2.0 lub nowszego.
Większość aplikacji, w tym ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Windows Workflow, SharePoint 2010, SharePoint 2013 i 64-bitowych.
Aby debugować aplikacje programu SharePoint za pomocą funkcji IntelliTrace, zobacz Przewodnik: debugowanie aplikacji programu SharePoint przy użyciu funkcji IntelliTrace.
Aby debugować aplikacje platformy Microsoft Azure za pomocą funkcji IntelliTrace, zobacz Debugowanie opublikowanej usługi w chmurze za pomocą funkcji IntelliTrace i Visual Studio.
Ograniczona obsługa — Aplikacje C++ przeznaczone dla systemu Windows obsługują wyświetlanie migawek przy użyciu funkcji IntelliTrace krok wstecz. Obsługiwane są tylko zdarzenia debugera i wyjątku.
— Aplikacje .NET Core i ASP.NET Core obsługiwane tylko dla niektórych zdarzeń (kontroler MVC, ADO.NET i zdarzenia HTTPClient) w debugowaniu lokalnym. Autonomiczny moduł zbierający nie jest obsługiwany w przypadku aplikacji .NET Core ani ASP.NET Core.
- Aplikacje F# na zasadzie eksperymentalnej
— Aplikacje platformy UWP obsługiwane tylko dla zdarzeń
Nieobsługiwane - Inne języki i skrypty
— Usługi systemu Windows, aplikacje Silverlight, Xbox lub Windows Mobile

Uwaga

Jeśli chcesz debugować proces, który jest już uruchomiony, możesz zbierać tylko zdarzenia IntelliTrace (bez informacji o wywołaniu). Na komputerze lokalnym można dołączyć tylko proces 32-bitowy lub 64-bitowy. Zdarzenia występujące przed dołączeniem do procesu nie są zbierane.

Dlaczego warto debugować za pomocą funkcji IntelliTrace?

Debugowanie tradycyjne lub na żywo pokazuje tylko bieżący stan aplikacji z ograniczonymi danymi dotyczącymi przeszłych zdarzeń. Musisz wywnioskować te zdarzenia na podstawie bieżącego stanu aplikacji lub ponownie utworzyć te zdarzenia przez ponowne uruchomienie aplikacji.

IntelliTrace rozszerza standardowe debugowanie poprzez zapisywanie określonych zdarzeń i danych w konkretnym czasie. Dzięki temu możesz zobaczyć, co się stało w aplikacji bez ponownego uruchamiania, zwłaszcza jeśli przechodzisz obok miejsca, w którym występuje 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 Funkcje IntelliTrace i Jakie dane zbiera 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 programie Visual Studio Enterprise, wybrać element i rozpocząć debugowanie za pomocą funkcji IntelliTrace. Umożliwia to przejście do dowolnego zdarzenia w pliku i wyświetlenie szczegółowych informacji o aplikacji w tym momencie.

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

  • Sesja IntelliTrace w programie Visual Studio 2015 Enterprise lub nowszych wersjach lub wcześniejszych wersjach programu Visual Studio Ultimate.

  • ASP.NET aplikacje internetowe hostowane w usługach IIS lub aplikacje programu SharePoint uruchomione we wdrożeniu w przypadku korzystania z programu Microsoft Monitoring Agent , samodzielnie lub z programem System Center 2012. Zobacz Używanie autonomicznego modułu zbierającego IntelliTrace i monitorowania za pomocą programu Microsoft Monitoring Agent.

    Ważne

    Korzystanie z programu Microsoft Monitoring Agent (MMA) z funkcją IntelliTrace nie jest już obsługiwane, gdy program Microsoft Monitoring Agent osiągnie koniec użytkowania 31 sierpnia 2024 r. Aby uzyskać więcej informacji, zobacz Migrowanie do agenta usługi Azure Monitor z agenta usługi Log Analytics.

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

  • Aplikacja uszkodziła plik danych, ale nie wiesz, gdzie wystąpiło to zdarzenie.

    Bez funkcji IntelliTrace należy przejrzeć kod, aby znaleźć wszystkie możliwe dostępy do plików, umieścić punkty przerwania w tych dostępach i ponownie uruchomić aplikację, aby znaleźć miejsce wystąpienia problemu. Dzięki funkcji IntelliTrace można zobaczyć wszystkie zebrane zdarzenia dostępu do plików i szczegółowe informacje o aplikacji po wystąpieniu każdego zdarzenia.

  • Ma miejsce wyjątek.

    Bez funkcji IntelliTrace otrzymujesz komunikat o wyjątku, ale nie masz zbyt wielu informacji o zdarzeniach, które doprowadziły do wyjątku. Możesz zbadać stos wywołań, aby zobaczyć łańcuch wywołań, które doprowadziły 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.

  • Usterka lub awaria występuje w wdrożonej aplikacji.

    W przypadku aplikacji opartych na platformie Microsoft Azure można skonfigurować zbieranie danych IntelliTrace przed opublikowaniem aplikacji. Podczas uruchamiania aplikacji funkcja IntelliTrace zapisuje dane w pliku iTrace. Zobacz Debugowanie opublikowanej usługi w chmurze przy użyciu technologii IntelliTrace i Visual Studio.

    W przypadku aplikacji internetowych ASP.NET 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 Używanie autonomicznego modułu zbierającego IntelliTrace.

Jakie dane zbiera intelliTrace?

Zbieranie informacji o zdarzeniach

Domyślnie funkcja IntelliTrace rejestruje tylko zdarzenia IntelliTrace: zdarzenia debugera, wyjątki, zdarzenia programu .NET Framework i inne zdarzenia systemowe, które mogą ułatwić debugowanie. 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 Funkcje IntelliTrace.

  • Zdarzenia debugera

    IntelliTrace zawsze zapisuje zdarzenia mające miejsce w debugerze Visual Studio. Na przykład uruchomienie aplikacji to zdarzenie debugera. Inne zdarzenia debugera to zatrzymywanie zdarzeń, które powodują przerwanie wykonywania aplikacji. Na przykład program osiąga punkt przerwania, osiąga punkt śledzenia lub wykonuje polecenie Krok .

    Domyślnie, aby ułatwić wydajność, funkcja IntelliTrace nie rejestruje każdej możliwej wartości zdarzenia debugera. Zamiast tego zapisuje następujące wartości:

    • Wartości w oknie Ustawienia lokalne . Pozostaw otwarte okno Ustawienia lokalne, aby wyświetlić te wartości.

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

    • 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.

      Po włączeniu trybu zdarzeń i migawek Funkcji IntelliTrace funkcja IntelliTrace utworzy migawkę procesu aplikacji w każdym zdarzeń punktu przerwania i kroku debugera. Spowoduje to zarejestrowanie wartości w oknach Ustawienia lokalne, Automatyczne i Watch , niezależnie od tego, czy okna są otwarte, czy nie. Zostaną również zebrane wartości we wszystkich przypiętych poradach dotyczących danych.

  • 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 programu .NET Framework

    IntelliTrace domyślnie zapisuje najbardziej typowe zdarzenia .NET Framework. Na przykład w przypadku CheckBox.CheckedChanged zdarzenia intelliTrace zbiera stan pola wyboru i tekst.

  • Zdarzenia aplikacji 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 programu Visual Studio Enterprise 2015 lub nowszej wersji, poprzedniej wersji programu Visual Studio Ultimate lub programu Microsoft Monitoring Agent działającego w trybie śledzenia .

    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:

Przechwytywanie migawek

Funkcję IntelliTrace można skonfigurować do przechwytywania migawek w każdym punkcie przerwania i zdarzeniu kroku debugera. Funkcja IntelliTrace rejestruje pełny stan aplikacji w każdej migawki, co umożliwia wyświetlanie złożonych zmiennych i ocenianie wyrażeń.

Uwaga

Autonomiczny moduł zbierający IntelliTrace nie obsługuje przechwytywania migawek.

Zobacz Sprawdzanie poprzednich stanów aplikacji przy użyciu funkcji IntelliTrace.

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 Inspekcja aplikacji przy użyciu debugowania historycznego.

Zbieranie informacji o module

Aby kontrolować, ile informacji na temat wywołania gromadzi IntelliTrace, określ tylko te moduły, która Cię interesują. Może to pomóc zwiększyć wydajność aplikacji podczas zbierania. Zobacz sekcję Kontrolowanie ilości informacji zbieranych przez funkcję IntelliTrace w funkcji IntelliTrace.

Czy funkcja IntelliTrace spowolni moją aplikację?

IntelliTrace domyślnie zbiera dane tylko dla wybranych zdarzeń IntelliTrace. Może to spowodować spowolnienie aplikacji w zależności od struktury i organizacji kodu. Jeśli na przykład funkcja IntelliTrace często rejestruje zdarzenie, może to spowolnić działanie aplikacji. Może to również sprawić, że rozważysz refaktoryzację aplikacji.

Zbieranie informacji o wywołaniu 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 pozycji Narzędzia, Opcje, IntelliTrace, Zaawansowane.

Blogi

Microsoft DevOps

Fora

Diagnostyka programu Visual Studio