Запись выполнения кода с помощью IntelliTrace во время отладки
Чтобы записать и отследить историю исполнения кода или приложения с помощью IntelliTrace в Visual Studio Ultimate, достаточно запустить обычную отладку. По умолчанию IntelliTrace включается автоматически и записывает определенные события и данные, которые затем может просмотреть разработчик. См. раздел Отладка приложения путем записи выполнения кода с помощью IntelliTrace.
Как проверить, что инструмент IntelliTrace включен
Примечание
Если флажок Включить IntelliTrace снят, то все пользовательские параметры IntelliTrace отключены.Эти параметры применяются ко всем проектам и решениям.и остаются неизменными во всех сеансах отладки и сеансах Visual Studio.
Выберите действие:
Отладка только с событиями
Выбор событий, записываемых IntelliTrace
Отладка с событиями и сведениями о вызовах
Управление объемом сведений о вызовах, записываемых IntelliTrace
Сохранение сеанса IntelliTrace
Отладка только с событиями
Можно попробовать выполнить отладку, где собираются только события IntelliTrace — возможно, этого будет достаточно, чтобы найти ошибку. События IntelliTrace — это события отладчика, исключения, события .NET Framework и другие системные события. До начала отладки можно включать или отключать определенные события в зависимости от того, должен ли их записывать инструмент IntelliTrace.
Ниже представлен наглядный обзор отладки, где собираются только события IntelliTrace.
К началу
Ниже приведены подробные инструкции по отладке, где используются только события IntelliTrace.
Запустите отладку обычным образом. Воспроизведите ошибку.
Совет
Оставьте окна Локальные и Видимые открытыми, чтобы просматривать и записывать отображаемые в них значения.Чтобы начать отладку, нажмите клавишу F5 или выберите Начать отладку в меню Отладка.Если окно IntelliTrace не отображается при запуске отладки, возможно, инструмент IntelliTrace не включен или окно закрыто.Чтобы открыть окно IntelliTrace, перейдите в меню Отладка и нажмите IntelliTrace, События IntelliTrace.
Приостановите выполнение приложения вручную.
Совет
В меню Отладка или в окне IntelliTrace выберите Прервать все.
Вы увидите хронологический список событий в окне IntelliTrace, который начинается с первого события и заканчивается последним событием, произошедшим перед тем, как отладка была прервана.
Найдите ближайшее к месту воспроизведения ошибки событие — в данном случае это событие перед тем, как выполнение приложения было прервано.
Выберите событие и просмотрите сведения о нем.
Если исходный код доступен, Visual Studio перемещает указатель на соответствующий код в окне источника, чтобы вы могли его изучить.
Для просмотра данных, записанных IntelliTrace во время события, щелкните ссылку Связанные представления. Откроется соответствующее окно отладчика.
Если это событие доступа к файлу, выберите ссылку с именем пути, чтобы открыть файл. Если полное имя пути недоступно, найдите файл с помощью отобразившегося поля поиска.
Если ошибка не найдена, попробуйте изучить другие события, которые предположительно ее вызвали. Вы также можете просмотреть сведения о вызове записи IntelliTrace и выполнить вызовы функций по шагам.
К началу
Выбор событий, записываемых IntelliTrace
Можно включать и выключать запись определенных событий IntelliTrace, кроме событий отладчика и исключений, которые записываются IntelliTrace всегда.
Если выполняется отладка, остановите ее. Если отладка не выполняется, выберите события и запустите ее.
Откройте меню Сервис, Параметры, IntelliTrace, События IntelliTrace. Выберите события и категории событий, записываемые IntelliTrace.
К началу
Отладка с событиями и сведениями о вызовах
Если для нахождения ошибки необходимо изучить последовательность вызовов функций приложения, можно записывать с помощью IntelliTrace не только события, но и вызовы функций. Тогда вы сможете просматривать историю стека вызовов, пошагово перемещаться по вызову в коде вперед и назад и просматривать записанные IntelliTrace данные, например имена функций, точки входа и выхода, определенные значения параметров и возвращаемые значения. См. раздел Отладка приложения путем записи выполнения кода с помощью IntelliTrace.
Если выполняется отладка, остановите ее. Если отладка не выполняется, включите сбор данных о вызовах и запустите ее.
Включите сбор данных о вызовах.
Совет
Это может замедлить работу приложения и увеличить размер файлов журнала IntelliTrace (ITRACE-файлов), сохраняемых на диск.Чтобы получить подробные данные о вызовах, не замедляя работу приложения,записывайте данные только об интересующих вас модулях.Чтобы изменить максимальный размер ITRACE-файлов, перейдите в меню Сервис и нажмите Параметры, IntelliTrace, Дополнительно.
Запустите отладку обычным образом. Воспроизведите ошибку.
Совет
Оставьте окна Локальные и Видимые открытыми, чтобы просматривать и записывать отображаемые в них значения.Чтобы начать отладку, нажмите клавишу F5 или выберите Начать отладку в меню Отладка.Если окно IntelliTrace не отображается при запуске отладки, возможно, инструмент IntelliTrace не включен или окно закрыто.Чтобы открыть окно IntelliTrace, перейдите в меню Отладка и нажмите IntelliTrace, События IntelliTrace.
Приостановите выполнение приложения вручную.
Совет
В меню Отладка или в окне IntelliTrace выберите Прервать все.
Найдите ближайшее к месту воспроизведения ошибки событие. См. раздел Отладка только с событиями.
Выберите событие и просмотрите сведения о нем. Рядом с разделом Связанные представления выберите Представление вызовов.
Вы увидите историю стека вызовов, начиная с корневого вызова приложения, и заканчивая текущим вызовом, связанным с выбранным событием, которое не является текущим в реальном времени.
Под текущим вызовом, с отступом, отображается другой список с вызванными текущим вызовом функциями. Список с отступом также показывает события IntelliTrace текущего вызова.
Примечание
Вызовы отображаются как неактивные, поскольку инструмент IntelliTrace не записал данные из соответствующих модулей.Для просмотра этих данных включите сбор данных IntelliTrace из этих модулей.
Найдите вызов, который следует за выбранным событием. Дважды щелкните этот вызов, чтобы войти в него.
В окне Представление вызовов вызов, в который выполнен заход, является новым текущим вызовом внизу стека вызовов. В списке с отступом теперь отображаются вызовы и события, связанные с новым текущим вызовом. В окне источника и окне отладчика также отображаются сведения для этого нового текущего вызова.
Совет
Если вас интересует только место вызова, щелкните вызов в окне Представление вызовов один раз вместо двух.Указатель переместится на место вызова, однако без захода в вызов, вы останетесь в текущем вызове.
Пошагово выполнить вызовы и события можно во внутренней области навигации, отображаемой рядом с окном источника, когда информация о вызове доступна. Если внутренняя область навигации не отображается, откройте меню Сервис и нажмите Параметры, IntelliTrace, Дополнительно. Выберите Вывод внутренней области навигации в режиме отладки.
Задать контекст отладчика здесь
Задает контексту отладки временной интервал вызова, в котором он отображается.
Значок отображается только на каждом фрейме текущего стека вызовов.
Возврат к месту вызова
Переместите указатель и контекст отладки назад в тот момент, где была вызвана текущая функция.
Если используется традиционный режим отладки, эта команда запускает отладку с помощью IntelliTrace.
Перейти к предыдущему вызову или событию IntelliTrace
Перемещает указатель и контекст отладки назад во времени к предыдущему вызову или событию.
Если используется традиционный режим отладки, эта команда запускает отладку с помощью IntelliTrace.
Шаг с заходом
Перемещает указатель и контекст отладки вперед во времени, к выбранной в настоящее время функции.
Эта команда доступна только при отладке с помощью IntelliTrace.
Перейти к следующему вызову или событию IntelliTrace
Перемещает указатель и контекст отладки вперед во времени, к следующему вызову или событию, для которого имеются данные IntelliTrace.
Эта команда доступна только при отладке с помощью IntelliTrace.
Перейти в динамический режим
Возвращает к традиционной отладке с того момента, когда была начата отладка с помощью IntelliTrace.
Чтобы найти определенный экземпляр вызова, выполните поиск записанных экземпляров этого вызова в журнале IntelliTrace.
Из строки кода, в которой был сделан вызов:
Примечание
Если строка является выходом из метода, вы не сможете получить точные результаты.
- или -
Из тела вызываемой функции:
Убедитесь, что файл проекта, содержащий функцию, открыт в Visual Studio.
Откройте контекстное меню внутри тела функции. Выберите Найти этот метод в IntelliTrace.
Просмотрите результаты и найдите интересующий вас экземпляр. Выберите экземпляр, чтобы синхронизировать окно Представление вызовов и просмотреть записанные для этого экземпляра данные.
К началу
Управление объемом сведений о вызовах, записываемых IntelliTrace
Вы можете записывать с помощью IntelliTrace сведения о вызовах только в тех модулях, которые вас интересуют. Это, скорее всего, позволит повысить производительность приложения.
Чтобы добавить несколько модулей, используйте подстановочный знак * в начале или конце строки. В качестве имени модуля используйте имя файла, а не имя сборки. Пути к файлам не принимаются.
Примечание
Можно исключить некоторые модули, но это не предотвращает сбор данных из модулей, которые вас не интересуют, например модулей сторонних производителей или модулей с открытым исходным кодом.
К началу
Сохранение сеанса IntelliTrace
Чтобы продолжить сеанс позднее, сохраните сеанс как файл журнала IntelliTrace (ITRACE-файл).
Сохранение сеанса вручную
Сохранение сеанса автоматически
Совет
Для экономии места на диске отключите сохранение ITRACE-файлов, когда они больше не нужны.При этом существующие ITRACE-файлы не удаляются.
Поскольку IntelliTrace может собирать большой объем данных, по умолчанию максимальный размер ITRACE-файла в Visual Studio — 250 МБ.Если размер файла достигает этого значения, Visual Studio удаляет более ранние записи, освобождая место для новых.Если требуется сохранить больше данных, измените максимальный размер записываемого файла.
Visual Studio создает два ITRACE-файла для каждого сеанса IntelliTrace, если файлы сохраняются автоматически и процесс размещения Visual Studio (vshost.exe) включен.Visual Studio создает один ITRACE-файл для приложения и один ITRACE-файл для процесса размещения.Этот процесс используется по умолчанию: он повышает производительность отладки и предоставляет определенные возможности отладки.
Какие данные содержит ITRACE-файл?
ITRACE-файл содержит сведения об исключениях, потоках, веб-запросах, тестовых данных, модулях и другую системную информацию. Откройте файл в Visual Studio Ultimate, выберите элемент и начните отладку. Можно перейти к любому событию в файле, чтобы изучить связанный код и записанные данные о приложении на тот момент времени. См. раздел Отладка приложения с помощью сохраненных данных IntelliTrace.
Чтобы отлаживать ошибки или сбои, которые происходят во время тестирования в Microsoft Test Manager, но которые трудно воспроизвести в интегрированной среде разработки, попробуйте настроить Test Manager для сбора данных IntelliTrace. Эти данные можно сохранять в ITRACE-файл и прикреплять к рабочему элементу Team Foundation Server для дальнейшего изучения. См. раздел Анализ сбойных тестов и отслеживание ошибок.
Для отладки ошибок и сбоев без изменения конфигурации системы, например в рабочей среде, попробуйте использовать автономный сборщик, чтобы сохранять данные IntelliTrace в ITRACE-файле. См. раздел Сбор диагностических данных в производственной среде с помощью автономного сборщика данных IntelliTrace.
К началу
Дополнительные сведения
Отладка приложения путем записи выполнения кода с помощью IntelliTrace
Отладка приложения с помощью сохраненных данных IntelliTrace
Блоги
Visual Studio ALM + Team Foundation Server
Форумы
Руководство
Видеоролики
Видео Channel 9: Сбор и анализ данных IntelliTrace для отладки