Возможности IntelliTrace (C#, Visual Basic, C++)

IntelliTrace можно использовать для записи событий и вызовов методов, что позволяет проверять состояние приложения (стек вызовов и значения локальных переменных) на различных этапах выполнения. Просто начать отладку как обычно . IntelliTrace включен по умолчанию, и вы увидите, что информация IntelliTrace записывается в новом окне средств диагностики на вкладке "События". Выберите событие и нажмите кнопку "Активировать историческую отладку", чтобы просмотреть стек вызовов и локальные жители, записанные для этого события.

Пошаговое описание см. в разделе Пошаговое руководство: Использование IntelliTrace.

Средство IntelliTrace доступно в выпуске Visual Studio Enterprise, но не в выпусках Visual Studio Professional или Community.

Чтобы убедиться, что средство IntelliTrace включено, откройте страницу параметров, выбрав в меню Инструменты > Параметры > IntelliTrace. Параметр Включить IntelliTrace должен быть выбран по умолчанию.

Примечание.

Все параметры на странице параметров IntelliTrace охватывают Visual Studio как единое целое, а не распространяются на отдельные проекты или решения. Изменение этих параметров применяется ко всем экземплярам Visual Studio, всем сеансам отладки и всем проектам и решениям.

Выберите события, которые записывают IntelliTrace (C#, Visual Basic)

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

Если выполняется отладка, остановите ее. Перейдите в раздел Инструменты > Параметры > IntelliTrace > События IntelliTrace. Выберите события, которые будет записывать IntelliTrace.

Сбор моментальных снимков (C#, Visual Basic, C++)

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

Моментальные снимки доступны в Visual Studio Enterprise 2017 версии 15.5 и более поздних версий. Для использования этой функции требуется установка Windows 10 Anniversary Update или более поздней версии. Для приложений .NET Core и ASP.NET Core требуется Visual Studio Enterprise 2017 версии 15.7. Для собственных приложений для Windows требуется Visual Studio Enterprise 2017 версии 15.9 (предварительная версия 2).

Сбор событий IntelliTrace и сведений о вызове (C#, Visual Basic)

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

На данный момент сведения о вызовах не поддерживаются для приложений C++ и ASP.NET Core.

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

Совет

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

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

Использование области навигации

Можно использовать области навигации, которая отображается слева от окна кода. Если вы не видите область навигации, перейдите в раздел Инструменты > Параметры > IntelliTrace > Дополнительно и выберите параметр Отображать область навигации в режиме отладки.

В области навигации в режиме отладки с ведением журнала можно перемещаться вперед и назад по вызовам методов и событиям. Дополнительные сведения об отладке с ведением журнала см. в разделе Отладка с ведением журнала. Здесь доступен ряд команд.

Команда Description
Задать контекст отладчика здесь Задает контексту отладки временной интервал вызова, в котором он отображается.

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

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

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

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

Эта команда доступна только в режиме отладки с ведением журнала.
Перейти в динамический режим Возврат в динамический режим отладки.

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

Поиск методов можно осуществлять только в том случае, если были включены сведения о вызовах метода. Можно выполнить поиск конкретной строки или метода в журнале IntelliTrace. Во время приостановки выполнения отладчика щелкните правой кнопкой мыши в теле функции, чтобы открыть контекстное меню, и выберите Найти эту строку в IntelliTrace или Найти этот метод в IntelliTrace.

Управление объемом сведений о вызове записей IntelliTrace

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

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

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

Сохранение данных IntelliTrace в файл (C#, Visual Basic, C++)

Вы можете сохранить данные, собранные IntelliTrace, выбрав Отладка > IntelliTrace > Сохранить сеанс IntelliTrace во время отладки, пока работа приложения прервана. Если приложение все еще выполняется или отладка остановлена, пункт меню будет отключен и сохранить данные, собранные IntelliTrace, будет невозможно.

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

Совет

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

При сохранении данных IntelliTrace в файл вы получаете один ITRACE-файл для каждого процесса, из которого IntelliTrace собрал данные. Затем вы можете открыть ITRACE-файл в Visual Studio, выбрав в меню Файл > Открыть > Файл и выбрав ITRACE-файл в диалоговом окне открытия файла. Дополнительные сведения см. в разделе Использование сохраненных данных IntelliTrace.

Блоги

IntelliTrace в Visual Studio Enterprise 2015

IntelliTrace в Visual Studio Enterprise 2015 теперь поддерживает вложение

Сбор данных из службы Windows с помощью автономного сборщика данных IntelliTrace

Редактирование плана коллекции IntelliTrace

Пользовательские TraceSource и отладка с помощью IntelliTrace

Форумы

Отладчик Visual Studio