Как настроить переменные наблюдения в окне просмотра перед запуском сеанса отладки в VS2017? - PullRequest
0 голосов
/ 05 апреля 2019

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

Хорошо известными шагами для просмотра переменной в Visual Studio 2017 является установка точки останова (возможно, для первого экземпляра переменной, которой присвоено значение), затем добавление переменной к Окно просмотра . При последующих запусках эта наблюдаемая переменная должна оставаться в окне просмотра .

Есть ли способ выполнить предварительное заполнение Окна просмотра перед сеансом отладки? У меня есть код, который запускается во временной последовательности. Если во время перерыва выполнения выполнить расширенное время, чтобы сделать паузу и настроить часы, произойдет сбой программы. Такой таймаут дает сбой при настройке переменных объектов наблюдения, что затрудняет взаимодействие с отладчиком. Предварительное заполнение списка наблюдения значительно помогло бы.

Я знаю, что мог бы использовать такую ​​технику, как использование операторов Debug.Print(...), которые выводятся в Окно вывода во время выполнения кода. Тем не менее, это не позволяет мне контролировать и визуально отслеживать мои усилия по отладке, которые поступают из Watch Window .

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Как настроить переменные наблюдения в окне просмотра перед запуском сеанса отладки в VS2017?

Боюсь, ответ отрицательный. Пока что окно Watch можно настроить только после начала сеанса отладки. Это похоже на то, что окно времени выполнения появляется только во время отладки.

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

В качестве альтернативы вы можете следовать подробным советам Энди, приведенным выше.

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

0 голосов
/ 05 апреля 2019

Часы могут быть оценены только тогда, когда вы приостановлены в отладчике, скажем, на точке останова.Они не могут быть оценены во время нормального выполнения.Вы можете обойти это ограничение:

  1. Добавить Debug.Print(...) или что-то похожее на ваш код, который выводит значение.
  2. Аналогично # 1 добавить TracePoint , который вы найдете в настройках действий настройки точек останова (это значок шестеренки, когда вы наводите курсор на точку останова).При нажатии на TracePoints они будут оценивать выражение, указанное вами в окне действий, и записывать его в окно Output.Преимущество TracePoints перед добавлением вашей собственной регистрации заключается в том, что вы можете выключать и включать ее без создания кода.Дополнительная информация по адресу: https://docs.microsoft.com/en-us/visualstudio/debugger/using-breakpoints?view=vs-2019#BKMK_Print_to_the_Output_window_with_tracepoints
  3. Используйте функцию VS Enterprise only Снимки , которая является частью IntelliTrace.По сути, установите свои контрольные точки, а не останавливайтесь на них, чтобы посмотреть на часы, просто продолжайте.Каждый раз, когда вы останавливаете моментальный снимок процесса, будет сделан снимок состояния вашего приложения в то время.Затем, как только вы закончите, используйте окно Diagnostic Tools, чтобы выбрать каждый из snasphots и активировать их.Для каждого снимка вы можете использовать отладчик так же, как если бы вы остановили приложение.Таким образом, вы можете использовать часы, проверять и т. Д. Конечно, вы не можете сделать шаг, так как приложение уже запущено, но вы можете перейти к следующему снимку и т. Д. Более подробная информация по адресу: https://docs.microsoft.com/en-us/visualstudio/debugger/view-snapshots-with-intellitrace?view=vs-2019 и https://devblogs.microsoft.com/visualstudio/step-back-while-debugging-with-intellitrace/
...