Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете тратить меньше времени на отладку приложения при использовании IntelliTrace для записи и трассировки журнала выполнения кода. Ошибки можно найти легко, так как IntelliTrace позволяет:
Запись определенных событий
Проверьте связанный код, данные, которые отображаются в окне "Локальные" во время событий отладчика и сведения о вызове функции
Ошибки отладки, которые трудно воспроизвести или которые происходят в развертывании
IntelliTrace можно использовать в выпуске Visual Studio Enterprise (но не в выпусках professional или community).
Что вы хотите сделать?
Сценарий | Название |
---|---|
Отладка приложения с помощью IntelliTrace: - Показать мне прошлые события. - Покажите мне информацию о вызовах с прошедшими событиями. — Сохранить мой сеанс IntelliTrace. — управление собранными данными IntelliTrace. |
-
Проверка предыдущих состояний приложения с помощью IntelliTrace - Пошаговое руководство. Использование IntelliTrace - Функции IntelliTrace - Историческая отладка |
Сбор данных IntelliTrace из развернутых приложений | - Использование автономного сборщика IntelliTrace |
Начните отладку из файла журнала IntelliTrace (ITrace-файл). | - Использование сохраненных данных IntelliTrace |
Какие приложения можно выполнить отладку с помощью IntelliTrace?
Уровень поддержки | Типы приложений |
---|---|
Полная поддержка | — Приложения Visual Basic и Visual C#, использующие .NET Framework 2.0 или более поздние версии. Вы можете выполнять отладку большинства приложений, включая ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Рабочий процесс Windows, SharePoint 2010, SharePoint 2013 и 64-разрядные приложения. Сведения об отладке приложений SharePoint с помощью IntelliTrace см. в руководстве по отладке приложения SharePoint с помощью IntelliTrace. Сведения об отладке приложений Microsoft Azure с помощью IntelliTrace см. в статье Отладка опубликованной облачной службы с помощью IntelliTrace и Visual Studio. |
Ограниченная поддержка | — Приложения C++, предназначенные для Windows, поддерживают просмотр моментальных снимков с помощью возможности шаг назад (step-back) IntelliTrace. Поддерживаются только события отладчика и исключения. — .NET Core и приложения ASP.NET Core, поддерживаемые только для определенных событий (контроллер MVC, ADO.NET и httpClient) в локальной отладке. Автономный сборщик не поддерживается для приложений .NET Core или ASP.NET Core. — приложения F# на экспериментальной основе — приложения UWP, поддерживаемые только для событий |
Не поддерживаются | - Другие языки и скрипты — Приложения Windows Services, Silverlight, Xbox или Windows Mobile |
Замечание
Если вы хотите отладить уже запущенный процесс, вы можете собирать только события IntelliTrace (без сведений о вызове). Вы можете подключиться к 32-разрядному или 64-разрядному процессу только на локальном компьютере. События, возникающие перед присоединением к процессу, не собираются.
Почему отладка с помощью IntelliTrace?
Традиционная или динамическая отладка показывает только текущее состояние приложения с ограниченными данными о прошлых событиях. Необходимо либо определить эти события на основе текущего состояния приложения, либо повторно создать эти события, повторно выполнив запуск приложения.
IntelliTrace расширяет этот традиционный интерфейс отладки путем записи определенных событий и данных в эти моменты времени. Это позволяет увидеть, что произошло в вашем приложении без перезагрузки, особенно если вы перескочите через место, где находится ошибка. IntelliTrace включен по умолчанию во время традиционной отладки и собирает данные автоматически и невидимо. Это позволяет легко переключаться между традиционной отладкой и отладкой IntelliTrace, чтобы просмотреть записанные сведения. Ознакомьтесь с функциями IntelliTrace и какими данными собирается IntelliTrace?
IntelliTrace также может помочь выполнить отладку ошибок, которые трудно воспроизвести или которые происходят в развертывании. Вы можете собирать данные IntelliTrace и сохранять их в файле журнала IntelliTrace (iTrace-файл). Файл iTrace содержит сведения об исключениях, событиях производительности, веб-запросах, тестовых данных, потоках, модулях и других системных сведениях. Этот файл можно открыть в Visual Studio Enterprise, выбрать элемент и начать отладку с помощью IntelliTrace. Это позволяет перейти к любому событию в файле и просмотреть конкретные сведения о приложении в данный момент времени.
Данные IntelliTrace можно сохранить из следующих источников:
Сеанс IntelliTrace в Visual Studio 2015 Enterprise или более поздних версиях или предыдущих версиях Visual Studio Ultimate.
ASP.NET веб-приложения, размещённые на IIS, или приложения SharePoint, работающие в развёртывании с использованием Microsoft Monitoring Agent, отдельно или вместе с System Center 2012. См. статью Об использовании автономного сборщика IntelliTrace и мониторинга с помощью Microsoft Monitoring Agent.
Это важно
Использование Microsoft Monitoring Agent (MMA) с IntelliTrace больше не поддерживается, когда Microsoft Monitoring Agent достигнет конца жизни 31 августа 2024 года. Дополнительные сведения см. в статье "Миграция в агент Azure Monitor" из агента Log Analytics.
Ниже приведены некоторые примеры того, как IntelliTrace поможет вам выполнить отладку:
Ваше приложение повредило файл данных, но вы не знаете, где произошёл этот инцидент.
Без IntelliTrace необходимо просмотреть код, чтобы найти все возможные доступы к файлам, поместить точки останова в эти доступы и повторно запустить приложение, чтобы найти место возникновения проблемы. С помощью IntelliTrace можно просмотреть все собранные события доступа к файлам и конкретные сведения о приложении при каждом событии.
Происходит исключение.
Без IntelliTrace вы получаете сообщение об исключении, но у вас нет много информации о событиях, которые привели к исключению. Вы можете проверить стек вызовов, чтобы увидеть цепочку вызовов, которые привели к исключению, но вы не видите последовательность событий, которые произошли во время этих вызовов. С помощью IntelliTrace можно проверить события, которые произошли до исключения.
Ошибка или сбой происходит в развернутом приложении.
Для приложений на основе Microsoft Azure можно настроить сбор данных IntelliTrace перед публикацией приложения. Во время работы приложения IntelliTrace сохраняет данные в ITrace-файле. См . статью "Отладка опубликованной облачной службы" с помощью IntelliTrace и Visual Studio.
Для ASP.NET веб-приложений, размещенных на IIS 7.0, 7.5 и 8.0, и приложений SharePoint 2010 или SharePoint 2013, используйте Microsoft Monitoring Agent либо отдельно, либо с System Center 2012, чтобы сохранить данные IntelliTrace в файл .iTrace.
Это полезно, если вы хотите диагностировать проблемы с приложениями в развертывании. См. раздел "Использование автономного сборщика IntelliTrace".
Какие данные собирает IntelliTrace?
Сбор сведений о событии
По умолчанию IntelliTrace записывает только события IntelliTrace: события отладчика, исключения, события .NET Framework и другие системные события, которые помогают выполнять отладку. Вы можете выбрать типы событий IntelliTrace, которые требуется собирать, за исключением событий и исключений отладчика, которые всегда собираются. См. сведения о функциях IntelliTrace.
События отладчика
IntelliTrace всегда записывает события, происходящие в отладчике Visual Studio. Например, запуск приложения — это событие отладчика. Другие события отладчика являются событиями остановки, которые приводят к прерыванию выполнения вашего приложения. Например, программа попадает в точку останова, попадает в точку трассировки или выполняет команду Step .
По умолчанию, чтобы помочь с производительностью, IntelliTrace не записывает все возможные значения для события отладчика. Вместо этого он записывает следующие значения:
Значения в окне "Локальные" Откройте окно "Локальные" для просмотра этих значений.
Значения в окне "Авто" только если окно "Авто" открыто
Значения в подсказках данных, которые отображаются при перемещении указателя мыши на переменную в исходном окне, чтобы увидеть её значение. IntelliTrace не собирает значения в закрепленных всплывающих подсказках.
Если включен режим событий и моментальных снимков IntelliTrace, IntelliTrace будет принимать моментальный снимок процесса приложения в каждой точке останова отладчика и событии шага . При этом будут записываться значения в окнах "Локальные", " Авто" и " Контроль " независимо от того, открыты ли окна. Значения в любых прикрепленных подсказках данных также будут собраны.
Исключения
IntelliTrace записывает тип исключения и сообщение для таких исключений:
Обработка исключений, когда исключение возникает и перехватывается
необработанных исключений.
.NET Framework события
По умолчанию IntelliTrace записывает наиболее распространенные события .NET Framework. Например, для CheckBox.CheckedChanged события IntelliTrace собирает состояние и текст флажка.
События приложений SharePoint 2010 и SharePoint 2013
Вы можете записывать события профиля пользователя и подмножество событий единой системы ведения журнала (ULS) для приложений SharePoint 2010 и 2013, работающих за пределами Visual Studio. Эти события можно сохранить в ITrace-файле. Требуется Visual Studio Enterprise 2015 или более поздняя версия, предыдущая версия Visual Studio Ultimate или Microsoft Monitoring Agent, работающая в режиме трассировки.
При открытии файла iTrace введите идентификатор корреляции SharePoint, чтобы найти соответствующий веб-запрос, просмотреть записанные события и начать отладку из определенного события. Если файл содержит необработанные исключения, можно выбрать идентификатор корреляции, чтобы начать отладку исключения.
См.
Запись моментальных снимков
IntelliTrace можно настроить для записи моментальных снимков в каждой точке останова и на каждом шаге отладчика. IntelliTrace записывает полное состояние приложения на каждом моментальном снимке, что позволяет просматривать сложные переменные и оценивать выражения.
Замечание
Автономный сборщик IntelliTrace не поддерживает запись моментальных снимков.
См. статью "Проверка предыдущих состояний приложения с помощью IntelliTrace".
Сбор информации о вызове функции
IntelliTrace можно настроить для сбора сведений о вызовах для функций. Эта информация позволяет просматривать журнал стека вызовов и выполнять шаги назад и вперед через вызовы в коде. Для каждого вызова функции IntelliTrace записывает эти данные:
- Имя функции
- Значения примитивных типов данных, передаваемых в качестве параметров в точках входа функции и возвращенные в точках выхода функции
- Значения автоматических свойств при чтении или изменении
- Указатели на дочерние объекты первого уровня без их значений, кроме указания, являются ли они NULL или нет.
Замечание
IntelliTrace собирает только первые 256 объектов в массивах и первые 256 символов для строк.
См. статью "Проверка приложения с помощью исторической отладки".
Сбор сведений о модуле
Чтобы управлять объемом собираемых сведений о вызовах в IntelliTrace, укажите только те модули, которые вас интересуют. Это может помочь улучшить производительность приложения во время сбора. См. раздел "Управление объемом информации IntelliTrace Collects" в функциях IntelliTrace .
Замедлит ли IntelliTrace мое приложение?
По умолчанию IntelliTrace собирает данные только для выбранных событий IntelliTrace. Это может как замедлить, так и не замедлить работу приложения в зависимости от структуры и организации кода. Например, если IntelliTrace часто записывает событие, это может замедлить работу приложения. Кроме того, вы можете рассмотреть возможность рефакторинга приложения.
Сбор сведений о вызове может значительно замедлить работу приложения. Он также может увеличить размер файлов журнала IntelliTrace (.iTrace-файлов), которые вы сохраняете на диск. Чтобы свести к минимуму эти эффекты, соберите сведения о вызове только для модулей, которые вам нужны. Чтобы изменить максимальный размер файлов iTrace, перейдите в раздел "Сервис", "Параметры", "IntelliTrace", "Дополнительно".