Отладка приложения путем записи выполнения кода с помощью IntelliTrace
Чтобы тратить меньше времени на отладку приложения, записывайте и отслеживайте историю его выполнения с помощью IntelliTrace в Visual Studio Ultimate.Это помогает упростить поиск ошибок, не устанавливая много точек останова, поскольку IntelliTrace позволяет:
Записывать определенные происходящие в приложении события.
Это позволяет просматривать связанный код, данные, отображаемые в окне Локальные во время событий отладчика, и данные вызова функции, если выбран параметр их сбора.
Уменьшите число перезапусков приложения с целью воспроизведения ошибок и событий.
Ошибки отладки, которые сложно воспроизвести или которые происходят за пределами Visual Studio, к примеру, в продуктивной среде или других средах.
В этом примере показано, как запись событий может облегчить поиск ошибок в коде:
Посмотрите IntelliTrace в действии: Сбор и анализ данных IntelliTrace для отладки (видео 9 канала) (Collecting and analyzing IntelliTrace data for debugging (Channel 9 video)).
Выполняемые задачи
Отладить мое приложение с помощью IntelliTrace в Visual Studio:
|
|
Сбор данных IntelliTrace во время тестового сеанса в Test Manager |
|
Сбор данных IntelliTrace из приложений, запущенных вне Visual Studio |
|
Запуск отладки из файла журнала IntelliTrace (ITRACE-файл). |
часто задаваемые вопросы
Какие приложения можно отладить с помощью IntelliTrace?
Зачем выполнять отладку с помощью IntelliTrace?
Какие данные собирает IntelliTrace?
IntelliTrace замедлит работу приложений?
Какие приложения можно отладить с помощью IntelliTrace?
Поддерживается |
|
Ограниченная поддержка |
|
Не поддерживаются |
|
![]() |
---|
Нельзя использовать IntelliTrace для отладки уже выполняемого процесса.Необходимо запустить IntelliTrace при запуске процесса. |
Зачем выполнять отладку с помощью IntelliTrace?
Традиционная отладка или отладка в реальном времени отображает только текущее состояние приложения с ограниченными данными о прошлых событиях.Вы должны получить эти события или на основе текущего состояния приложения или необходимо создать заново эти события, повторно выполнив приложение.
IntelliTrace расширяет традиционные возможности отладки, записывая конкретные события и данные в определенные периоды времени.Это позволяет увидеть, что произошло в приложении, не перезапуская его, особенно если место возникновения ошибки было пропущено.Средство IntelliTrace по умолчанию включается во время традиционной отладки и автоматически и невидимо собирает данные.Это позволяет легко переключаться между отладкой традиционной и отладкой с помощью IntelliTrace для просмотра записанной информации.См. разделы Запись выполнения кода с помощью IntelliTrace для отладки в Visual Studio и Какие данные собирает IntelliTrace?
IntelliTrace также может помочь в отладке ошибок, которые трудно воспроизвести или происходят вне Visual Studio.Можно собирать данные IntelliTrace и сохранять их в файл журнала IntelliTrace (файл .iTrace).Файл .iTrace содержит сведения об исключениях, потоках, запросах через Интернет, тестовых данных, модулях и другую системную информацию.Этот файл можно открыть в Visual Studio Ultimate, выбрать элемент и начать отладку с помощью IntelliTrace.Это позволяет перейти к любому событию в файле и просматривать конкретные сведения о приложении на этот момент времени.
Можно сохранить данные IntelliTrace из следующих источников:
Сеанс IntelliTrace в Visual Studio Ultimate
Тестовый сеанс в Microsoft Test Manager
Приложения, выполняющиеся вне Visual Studio, например в производственных и других средах
Visual Studio 2012.1: приложения, контролируемые пакетом обновления 1 (SP1) System Center 2012 — Operations Manager с профилирующим пакетом управления IntelliTrace.См. раздел Как настроить интеграцию с IntelliTrace в System Center 2012.
Дополнительные сведения см. в разделе Отладка приложения с помощью файлов журнала IntelliTrace (.iTrace).
Ниже приводятся несколько примеров того, как IntelliTrace упрощает процесс отладки:
Приложение имеет поврежденный файл данных, но вы не знаете, где это произошло.
Без IntelliTrace было бы необходимо просмотреть код, чтобы найти все возможные доступы к файлу, разместить точки останова в этих доступах и перезапустить приложение для поиска места возникновения проблемы.С помощью IntelliTrace можно просмотреть все собранные события доступа к файлу и конкретные сведения о приложении на момент, когда произошло каждое событие.
Происходит исключение.
Без IntelliTrace получено сообщение об исключении, но отсутствуют многие сведения о событиях, ставших причиной исключения.Можно проверить стек вызова, чтобы просмотреть цепочку вызовов, которые привели к возникновению исключения, но невозможно просмотреть последовательность событий, произошедших во время этих вызовов.С помощью IntelliTrace можно просмотреть события, которые случились перед исключением.
Приложение аварийно завершает работу на тестовом компьютере, но успешно выполняется на компьютере разработчика.
Можно собирать данные IntelliTrace от Microsoft Test Manager, сохранить эти данные в файле .iTrace и вложить файл с рабочим элементом Team Foundation Server для последующего просмотра.См. разделы Включение данных диагностической трассировки в сообщения об ошибках, которые трудно воспроизвести и Отладка приложения с помощью файлов журнала IntelliTrace (.iTrace).
Ошибка или сбой происходят в приложении, которое выполняется вне Visual Studio.
Для приложений на базе Windows Azure можно настроить сбор данных IntelliTrace до публикации приложения.Во время работы приложения IntelliTrace сохраняет информацию в ITRACE-файл.См. раздел Отладка опубликованной облачной службы с использованием IntelliTrace и Visual Studio (Debugging a Published Cloud Service with IntelliTrace and Visual Studio).
Для управляемых приложений рабочего стола (.exe), веб-приложений ASP.NET, которые размещены в службах IIS 7.0, 7.5 и 8.0, и приложений SharePoint 2010 можно использовать автономный сборщик для сохранения данных IntelliTrace в ITRACE-файле.
Этот метод полезен для диагностики проблем с приложениями, выполняющимися там, где нет необходимости изменять системные конфигурации, например в рабочей среде.Можно установить сборщик, не меняя системной конфигурации.Завершив сбор данных, достаточно удалить сборщик, чтобы отменить его установку.Дополнительные сведения см. в разделе Сбор данных IntelliTrace из-за пределов среды Visual Studio с использованием автономного сборщика.
Какие данные собирает IntelliTrace?
Сбор сведений о событиях
По умолчанию IntelliTrace записывает только события IntelliTrace.Это события отладчика, исключения, события .NET Framework и другие системные события, которые помогут вам в процессе отладки.Можно выбрать типы событий IntelliTrace, которые необходимо собрать, за исключением событий отладчика и исключений, которые собираются всегда.Дополнительные сведения см. в разделе Настройка сбора данных IntelliTrace для отладки в Visual Studio.
События отладчика
IntelliTrace всегда записывает события, которые происходят в отладчике Visual Studio.Например, запуск приложения — это событие отладчика.Другие события отладчика — это события остановки, заставляющие приложение прервать исполнение.Например, программа достигает точки останова, точки трассировки или выполняет команду Шаг.
Во избежание проблем с производительностью IntelliTrace не записывает все возможные значения события отладчика.Вместо этого он записывает эти значения:
Значения в окне Локальные.Оставьте окно Локальные открытым, чтобы видеть эти значения.
Значения в поле Видимые, только если открыто окно Видимые
Значения подсказок данных, отображаемые при наведении указателя мыши на переменную в окне источника для просмотра его значения.IntelliTrace не собирает значения в закрепленных подсказках данных.
Исключения
IntelliTrace записывает тип исключения и сообщение для соответствующих типов исключений.
Обработанные исключения, если исключение создано и перехвачено
Необработанные исключения
События .NET Framework
По умолчанию IntelliTrace записывает наиболее распространенные события платформы .NET Framework.Например:
При событии доступа к файлу IntelliTrace собирает имя файла.
Для события установки флажка IntelliTrace собирает состояние и текст флажка.
Visual Studio 2012.1: События приложения SharePoint 2010
Для приложений SharePoint 2010, выполняющихся вне Visual Studio, можно фиксировать и сохранять определенные события SharePoint в ITRACE-файл, используя автономный сборщик в Visual Studio 2012.1.
При открытии ITRACE-файла можно ввести идентификатор корреляции SharePoint для поиска соответствующего веб-запроса, просмотра зафиксированных событий и запуска отладки из указанного события.Если файл содержит необработанные исключения, то можно выбрать идентификатор корреляции для запуска отладки исключения.Можно записывать события профиля пользователя и подмножество событий унифицированной системы ведения журнала (ULS).
Пример
Сбор сведений о вызовах для функций
Можно настроить IntelliTrace для сбора сведений о вызовах для функций.Эти сведения позволяют просмотреть историю стека вызовов и перемещаться по вызовам в коде вперед и назад.Для каждого вызова функции IntelliTrace записывает эти данные:
Имя функции
Значения простых типов данных, переданных в качестве параметров в точках входа функции и возвращаемых в точках выхода функции
Значения автоматических свойств, когда те читаются или изменяются
Указатели на дочерние объекты первого уровня, но не их значения (только информацию о том, являются ли они null или нет)
![]() |
---|
IntelliTrace собирает только первые 256 объектов в массивах и первые 256 символов в строках. |
Дополнительные сведения см. в разделе Настройка сбора данных IntelliTrace для отладки в Visual Studio.
Сбор сведений о модуле
Для того, чтобы контролировать, размер собранной IntelliTrace информации о вызовах, укажите только интересующие модули.Это может повысить производительность приложения во время сборки информации.Дополнительные сведения см. в разделе Настройка сбора данных IntelliTrace для отладки в Visual Studio.
IntelliTrace замедлит работу приложений?
По умолчанию IntelliTrace собирает данные только для выбранных событий IntelliTrace.В зависимости от структуры и организации кода возможно замедление работы приложения.Например, если IntelliTrace записывает событие часто, это может замедлить приложение, однако в этом случае может также отобразиться запрос на рефакторинг приложения.
Сборка сведений о вызовах может значительно замедлить приложение.Она также может увеличить размер любых файлов журнала IntelliTrace (ITRACE-файлов), которые сохраняются на диск.Чтобы свести к минимуму указанные эффекты, можно собирать информацию о вызовах только в важных для вас модулях.Чтобы изменить максимальный размер файлов .iTrace, перейдите к Сервис, Параметры, IntelliTrace, Дополнительно.Дополнительные сведения см. в разделе Настройка сбора данных IntelliTrace для отладки в Visual Studio.
Где можно получить дополнительные сведения?
Запись выполнения кода с помощью IntelliTrace для отладки в Visual Studio
Настройка сбора данных IntelliTrace для отладки в Visual Studio
Включение данных диагностической трассировки в сообщения об ошибках, которые трудно воспроизвести
Сбор данных IntelliTrace из-за пределов среды Visual Studio с использованием автономного сборщика
Отладка приложения с помощью файлов журнала IntelliTrace (.iTrace)
Блоги
Visual Studio ALM + Team Foundation Server
Форумы
Отладчик Visual Studio (Visual Studio Debugger)
Руководство
Видеоклипы
Канал 9. Сбор и анализ данных IntelliTrace (Channel 9: Collecting and analyzing IntelliTrace data)