#visual-studio #visual-studio-2017 #visual-studio-debugging #watch-window
#visual-studio #visual-studio-2017 #visual-studio-debugging #окно просмотра
Вопрос:
Во всех моих поисках я не наткнулся на какой-либо трюк, подключаемый модуль или настройку, которые позволили бы мне предварительно заполнить окно просмотра для использования во время отладки.
Хорошо известными шагами для просмотра переменной в Visual Studio 2017 является установка точки останова (возможно, при первом экземпляре переменной, которой присваивается значение), а затем добавление переменной в окно просмотра. При последующих запусках эта наблюдаемая переменная должна оставаться в окне просмотра.
Есть ли способ выполнить предварительное заполнение окна просмотра перед сеансом отладки? У меня есть код, который выполняется в временной последовательности. Длительное время, затрачиваемое во время перерыва в выполнении на приостановку и настройку просмотра, приводит к сбою программы. Сбой такого тайм-аута при настройке объектов просмотра переменных затрудняет взаимодействие с отладчиком. Предварительное заполнение списка наблюдения значительно помогло бы.
Я знаю, что мог бы использовать такой метод, как использование Debug.Print(...)
инструкций, которые выводятся в окно вывода во время выполнения кода. Однако это не позволяет мне контролировать мои усилия по отладке и получать визуальную обратную связь, которая поступает из окна просмотра.
Ответ №1:
Просмотры могут быть оценены только при приостановке работы отладчика, скажем, на точке останова. Они не могут быть оценены во время обычного выполнения. Ваши варианты обойти это ограничение следующие:
- Добавьте
Debug.Print(...)
или что-то подобное в свой код, который выводит значение. - Аналогично # 1, добавьте точку трассировки, которую вы найдете в настройках actions параметра breakpoints (это значок шестеренки при наведении курсора мыши на точку останова). При достижении точек трассировки они затем вычислят выражение, указанное вами в окне действий, и запишут его в
Output
окне. Преимущество точек трассировки перед добавлением собственного ведения журнала заключается в том, что вы можете отключать и включать его без создания своего кода. Дополнительная информация на: https://learn.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019#BKMK_Print_to_the_Output_window_with_tracepoints - Используйте функцию «Снимки» только для VS Enterprise, которая является частью IntelliTrace. В основном устанавливайте свои точки останова, но вместо того, чтобы останавливаться на них, чтобы посмотреть на часы, просто продолжайте. При каждой остановке будет делаться снимок процесса, отражающий состояние вашего приложения на тот момент. Затем, как только вы закончите, используйте
Diagnostic Tools
окно, чтобы выбрать каждый из snasphots и активировать их. Для каждого снимка вы можете использовать отладчик так же, как если бы вы остановили приложение. Таким образом, вы можете использовать часы и проверять и т.д. Конечно, вы не можете перейти, поскольку приложение уже запущено, но вы можете перейти к следующему снимку и т.д. Дополнительная информация на: https://learn.microsoft.com/en-us/visualstudio/debugger/view-snapshots-with-intellitrace?view=vs-2019 и https://devblogs.microsoft.com/visualstudio/step-back-while-debugging-with-intellitrace /
Комментарии:
1.К вашему сведению, ваше третье предложение, с помощью снимков характеристика (отличный вариант!) не доступен, хотя я с помощью Microsoft визуальной студии корпоративных 2017 Версия 15.9.16. Включены только два из трех параметров. Отключенный (серый) параметр — «Моментальные снимки IntelliTrace (управляемые и собственные)». Эта опция поддерживается только в Windows 10 Anniversary Update и выше. Если бы я запускал этот VS2017 (Enterprise) в операционной системе Windows 10, у меня была бы эта опция. Сделайте шаг назад во время отладки
Ответ №2:
Как можно настроить переменные просмотра в окне просмотра перед запуском сеанса отладки в VS2017?
Боюсь, ответ отрицательный.На данный момент окно просмотра можно настроить только после запуска сеанса отладки.Это похоже на то, что окно времени выполнения появляется только во время отладки.
Таким образом, мы пока не можем предварительно заполнить его перед сеансом отладки. Другими словами, это сделано специально.
В качестве альтернативных способов вы можете следовать подробным предложениям Энди выше.
И поскольку ваши потребности имеют значение в какой-то конкретной ситуации отладки, вы также можете опубликовать свое предложение в сообществе разработчиков в виде голоса пользователя, чтобы добавить новую функцию.
Комментарии:
1. Я создал запрос на новую функцию для сообщества разработчиков, здесь: Добавление переменных просмотра в окна просмотра