Поделиться через


Запись выполнения кода с помощью IntelliTrace для отладки в Visual Studio

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

Как убедиться, что приложение IntelliTrace включено:

Включение или отключение IntelliTrace в Visual Studio

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

Снятие флажка Включить IntelliTrace отключает все пользовательские параметры IntelliTrace.Эти настройки IntelliTrace применяются ко всем проектам и решениям.Они остаются неизменными во всех сеансах отладки и сеансах Visual Studio.

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

  • Отладка только с событиями

  • Выбор событий для записи IntelliTrace

  • Отладка с событиями и сведениями о вызовах

  • Контроль объема записываемой информации о вызовах IntelliTrace

  • Сохранить ваш сеанс IntelliTrace

Отладка только с событиями

Можно попробовать отладку только с событиями IntelliTrace, чтобы узнать, можно ли найти ошибку только такими методами.События IntelliTrace — это события отладчика, исключения, события .NET Framework и другие системные события.Можно включать или отключать определенные события, чтобы контролировать события, записываемые IntelliTrace, однако сделать это необходимо до начала отладки.

Ниже представлен визуальный обзор отладки с использованием только событий IntelliTrace:

Только события IntelliTrace — воспроизведение ошибки

Только события IntelliTrace — сведения о событии и код

Только события IntelliTrace — обнаруженная ошибка

К началу

Ниже приведены подробные инструкции по отладке с помощью только событий IntelliTrace:

  1. Запустите отладку обычным образом.Воспроизведите ошибку.

    СоветСовет

    Оставьте окна Локальные и Видимые открытыми, чтобы просмотреть и записать значения, которые показаны в этих окнах.Чтобы начать отладку, нажмите клавишу F5 или выберите Начать отладку в меню Отладка.Если окно IntelliTrace не отображается при запуск отладки, возможно, IntelliTrace не включен или окно закрыто.Чтобы открыть окно IntelliTrace, перейдите к Отладка, IntelliTrace, События IntelliTrace.

  2. Приостановите выполнение приложения вручную.

    СоветСовет

    В меню Отладка или в окне IntelliTrace выберите Прервать все.

    Теперь можно увидеть хронологический список событий в окне IntelliTrace, начиная с верхней части с первым событием и заканчивая последним событием, когда отладчик прервал исполнение.

    Окно IntelliTrace с событиями диагностики

  3. Найдите ближайшее к месту воспроизведения ошибки событие — в данном случае, событие до того, как прервалось исполнение приложения.

  4. Выберите событие, чтобы развернуть подробные сведения о нем.

    • Если исходный код доступен, Visual Studio перемещает указатель на соответствующий код в окне источника, чтобы вы могли изучить его.

    • Чтобы просмотреть данные, записанные IntelliTrace, когда произошло событие, щелкните ссылку Связанные представления, чтобы увидеть соответствующее окно отладчика.

    • Если речь идет о событии доступа к файлу, выберите ссылку с именем пути, чтобы открыть файл.Если полное имя пути недоступно, найдите файл с помощью отобразившегося поля поиска.

  5. Если ошибка не найдена, попытайтесь изучить другие события, которые могли стать причиной ошибки.Возможно, у вас также имеется информация о вызове записи IntelliTrace и вы можете перебрать вызовы функций.

К началу

Dd572114.collapse_all(ru-ru,VS.110).gifВыбор событий для записи IntelliTrace

Можно включать и выключать запись конкретных событий IntelliTrace, кроме событий отладчика и исключений, которые записываются IntelliTrace всегда.

  1. Если выполняется отладка, остановите ее.В противном случае перезапустите отладку после выбора события.

  2. Перейдите на Сервис, Параметры, IntelliTrace, События IntelliTrace.Выберите события и категории событий, которые нужно записать с помощью IntelliTrace.

    Настройка сбора сведений о событиях для IntelliTrace

К началу

Отладка с событиями и сведениями о вызовах

Если необходимо изучить последовательность вызовов функций приложений, чтобы найти ошибку, IntelliTrace может записывать вызовы функций вместе с событиями.Это позволяет просмотреть историю стека вызовов, переходить между вызовами в коде вперед и назад и просматривать записанные IntelliTrace данные, например имена функций, точки входа и выхода и определенные значения параметров и возвращаемые значения.Дополнительные сведения см. в разделе Отладка приложения путем записи выполнения кода с помощью IntelliTrace.

  1. Если выполняется отладка, остановите ее.В противном случае после включения коллекции вызовов необходимо перезапустить отладку.

  2. Включите коллекцию вызовов.

    Настройка сбора сведений о вызовах для IntelliTrace

    СоветСовет

    Это может замедлить работу приложения и увеличить размер файлов журнала IntelliTrace (файлы .iTrace), сохраняемых на диск.Чтобы получить максимум данных о вызовах, но снизить негативное воздействие на производительность, записывайте данные только про интересующие вас модули.Чтобы изменить максимальный размер файлов .iTrace, перейдите к Сервис, Параметры, IntelliTrace, Дополнительно.

  3. Запустите отладку обычным образом.Воспроизведите ошибку.

    СоветСовет

    Оставьте окна Локальные и Видимые открытыми, чтобы просмотреть и записать значения, которые показаны в этих окнах.Чтобы начать отладку, нажмите клавишу F5 или выберите Начать отладку в меню Отладка.Если окно IntelliTrace не отображается при запуск отладки, возможно, IntelliTrace не включен или окно закрыто.Чтобы открыть окно IntelliTrace, перейдите к Отладка, IntelliTrace, События IntelliTrace.

  4. Приостановите выполнение приложения вручную.

    СоветСовет

    В меню Отладка или в окне IntelliTrace выберите Прервать все.

  5. Найдите событие, расположенное наиболее близко к месту воспроизведения ошибки.См. Отладка только с помощью событий.

  6. Выберите событие, чтобы развернуть подробные сведения о нем.Рядом с разделом Связанные представления выберите Представление вызовов.

    Окно IntelliTrace с событиями диагностики

    Теперь можно увидеть историю стека вызовов, начиная сверху, с корневого вызова вашего приложения, и заканчивая текущим вызовом, связанным с выбранным вами событием, которое не является текущим в реальном времени.

    Представление вызовов окна IntelliTrace

    Смещенным относительно текущего вызова отображается другой список с вызовами, сделанными текущим вызовом другим функциям.Список с отступом также показывает события IntelliTrace для текущего вызова.

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

    Вызовы отображаются как неактивные, поскольку IntelliTrace не записало данные из соответствующих модулей.Чтобы просмотреть эти данные, приложение IntelliTrace должно собрать данные из этих модулей.

  7. Найдите вызов, который следует за выбранным событием.Дважды щелкните этот вызов, чтобы войти в него.

    В окне Представление вызовов вызов, в который выполнен вход, является новым текущим вызовом внизу стека вызовов.В списке с отступом теперь отображаются вызовы и события, связанные с новым текущим вызовом.Исходное окно и окна отладчика также обновляются для этого нового текущего вызова.

    СоветСовет

    Если необходимо просмотреть только сайт вызова, щелкните вызов в окне Представление вызовов, вместо того чтобы дважды щелкнуть его.В результате указатель переместится на сайт вызова, однако вход в вызов выполнен не будет, пользователь останется в текущем вызове.

  8. Чтобы пройти через вызовы и события, используйте внутреннюю область навигации, отображаемую рядом с окном источника, когда информация о вызове доступна.Если внутренняя область навигации не отображается, перейдите к Сервис, Параметры, IntelliTrace, Дополнительно.Выберите Вывод внутренней области навигации в режиме отладки.

    Задать контекст отладчика здесь

    Задайте контекст отладки для временного периода вызова, где тот отображается.

    Значок отображается только на каждом фрейме текущего стека вызовов.

    Вернуться к сайту вызовов

    Переместите указатель и контекст отладки назад во времени, где была вызвана текущая функция.

    Если работа ведется в традиционном режиме отладки, эта команда заставляет запустить отладку с помощью IntelliTrace.

    Перейдите к предыдущему вызову или событию IntelliTrace

    Переместите указатель и контекст отладки назад во времени, к предыдущему вызову или событию.

    Если работа ведется в традиционном режиме отладки, эта команда заставляет запустить отладку с помощью IntelliTrace.

    Шаг с заходом

    Переместите указатель и контекст отладки вперед во времени, к выделенной в настоящее время функции.

    Эта команда доступна только при отладке с помощью IntelliTrace.

    Переход к следующему вызову или событию IntelliTrace

    Переместите указатель и контекст отладки вперед во времени, к следующему вызову или событию, для которого имеются данные IntelliTrace.

    Эта команда доступна только при отладке с помощью IntelliTrace.

    Перейти в динамический режим

    Вернитесь к традиционной отладке, где была начата отладка с помощью IntelliTrace.

  9. Чтобы найти определенный экземпляр вызова, выполните поиск в журнал IntelliTrace записанных экземпляров этого вызова.

    1. Из строки кода, в которой был сделан вызов:

      Поиск экземпляра вызова в ходе отладки IntelliTrace

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

      Если строка является выходом из метода, вы не сможете получить точные результаты.

      - или -

      Из тела вызываемой функции:

      1. Убедитесь, что файл проекта, содержащий функцию, открыт в Visual Studio.

      2. Откройте контекстное меню внутри тела функции.Выберите Найти этот метод в IntelliTrace.

    2. Просмотрите результаты, чтобы найти экземпляр, который вам нужен.Выберите экземпляр, чтобы синхронизировать окно Представление вызовов и просмотреть зафиксированные данные для этого экземпляра.

К началу

Dd572114.collapse_all(ru-ru,VS.110).gifКонтроль объема записываемой информации о вызовах IntelliTrace

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

Чтобы добавить несколько модулей, следует использовать подстановочный знак * в начале или конце строки.Для имен модуля используйте имена файлов или имена сборок.Пути к файлам не принимаются.

Настройка сбора сведений о модулях для IntelliTrace

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

Если исключить модули, система может продолжить собирать данные из не интересующих модулей, например сторонние модули или модули с открытым исходным кодом.

К началу

Сохранить ваш сеанс IntelliTrace

Чтобы продолжить сеанс позднее, сохраните сеанс как файл журнала IntelliTrace (файл .iTrace).

Сохранить сеанс вручную

Сохранение IntelliTrace вручную в Visual Studio

Сохранить сеанс автоматически

Автоматическое сохранение сеанса IntelliTrace

СоветСовет

Для экономии места на диске отключите сохранение файлов .iTrace, когда они больше не нужны.Все существующие файлы .iTrace останутся.

Visual Studio ограничивает размер файла .iTrace по умолчанию до 250 МБ, поскольку IntelliTrace может собирать большой объем данных.Если файл достигает своего лимита, Visual Studio удаляет более ранние записи, освобождая место для новых.Чтобы сохранить больше данных, чем ограничение по умолчанию, измените максимальный размер записи в файл.

Visual Studio создает два файла .iTrace для каждого сеанса IntelliTrace, если они сохранены автоматически и процесс размещения Visual Studio (vshost.exe) включен.Visual Studio создает один файл .iTrace для приложения и один файл .iTrace для процесса размещения.Этот процесс повышает производительность отладки, включает некоторые возможности отладки и включен по умолчанию.

Какие данные содержит файл .iTrace?

Файл .iTrace содержит сведения об исключениях, потоках, запросах через Интернет, тестовых данных, модулях и другую системную информацию.При открытии файла в Visual Studio Ultimate выберите элемент и начните отладку. Можно перейти к любому событию в файле, чтобы изучить связанные код и записанные данные о приложении на тот момент времени.Дополнительные сведения см. в разделе Отладка приложения с помощью файлов журнала IntelliTrace (.iTrace).

Чтобы отлаживать ошибки или сбои, которые происходят во время тестирования в Microsoft Test Manager, но которые трудно воспроизвести в интегрированной среде разработки, постарайтесь настроить Test Manager для сбора данных IntelliTrace.Можно сохранить эти данные в файл .iTrace и прикрепить рабочий элемент Team Foundation Server для дальнейшего изучения.Дополнительные сведения см. в разделе Практическое руководство. Сбор данных IntelliTrace для отладки сложных проблем.

Чтобы отладить происходящие ошибки или сбои, если вам не нужно менять конфигурацию системы, например в производственных средах, попробуйте использовать автономный сборщик, чтобы сохранить данные IntelliTrace в файле .iTrace.Дополнительные сведения см. в разделе Сбор данных IntelliTrace из-за пределов среды Visual Studio с использованием автономного сборщика.

К началу

Где можно получить дополнительные сведения?

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

Включение данных диагностической трассировки в сообщения об ошибках, которые трудно воспроизвести

Сбор данных IntelliTrace из-за пределов среды Visual Studio с использованием автономного сборщика

Отладка приложения с помощью файлов журнала IntelliTrace (.iTrace)

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

Visual Studio ALM + Team Foundation Server

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

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

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

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

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

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