Отладка приложения путем записи выполнения кода с помощью IntelliTrace

Чтобы тратить меньше времени на отладку приложения, записывайте и отслеживайте историю его выполнения с помощью IntelliTrace в Visual Studio Ultimate.Это помогает упростить поиск ошибок, не устанавливая много точек останова, поскольку IntelliTrace позволяет:

  • Записывать определенные происходящие в приложении события.

    Это позволяет просматривать связанный код, данные, отображаемые в окне Локальные во время событий отладчика, и данные вызова функции, если выбран параметр их сбора.

  • Уменьшите число перезапусков приложения с целью воспроизведения ошибок и событий.

  • Ошибки отладки, которые сложно воспроизвести или которые происходят за пределами Visual Studio, к примеру, в продуктивной среде или других средах.

В этом примере показано, как запись событий может облегчить поиск ошибок в коде:

Только события IntelliTrace — поток верхнего уровня

Посмотрите IntelliTrace в действии: Сбор и анализ данных IntelliTrace для отладки (видео 9 канала) (Collecting and analyzing IntelliTrace data for debugging (Channel 9 video)).

Выполняемые задачи

Отладить мое приложение с помощью IntelliTrace в Visual Studio:

  • Показать мне прошлые события.

  • Показать мне связанные с прошлыми событиями данные о вызовах.

  • Сохранить мой сеанс IntelliTrace.

  • Контроль собираемых IntelliTrace данных.

Сбор данных IntelliTrace во время тестового сеанса в Test Manager

Сбор данных IntelliTrace из приложений, запущенных вне Visual Studio

Запуск отладки из файла журнала IntelliTrace (ITRACE-файл).

часто задаваемые вопросы

  • Какие приложения можно отладить с помощью IntelliTrace?

  • Зачем выполнять отладку с помощью IntelliTrace?

  • Какие данные собирает IntelliTrace?

  • IntelliTrace замедлит работу приложений?

Какие приложения можно отладить с помощью IntelliTrace?

Поддерживается

Ограниченная поддержка

  • Приложения F# на экспериментальной основе

  • Приложения Windows Store — поддержка только событий

Не поддерживаются

  • C++, другие языки и скрипт

  • Silverlight, Xbox или приложения Windows Mobile

ПримечаниеПримечание

Нельзя использовать 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)

Dd264915.collapse_all(ru-ru,VS.110).gifБлоги

Visual Studio ALM + Team Foundation Server

Dd264915.collapse_all(ru-ru,VS.110).gifФорумы

Отладчик Visual Studio (Visual Studio Debugger)

Dd264915.collapse_all(ru-ru,VS.110).gifРуководство

Тестирование для непрерывной поставки в Visual Studio 2012 — Глава 6. Панель инструментов тестирования (Testing for Continuous Delivery with Visual Studio 2012 – Chapter 6: A Testing Toolbox)

Dd264915.collapse_all(ru-ru,VS.110).gifВидеоклипы

Канал 9. Сбор и анализ данных IntelliTrace (Channel 9: Collecting and analyzing IntelliTrace data)