Можно ли заставить VS оценивать отладочные часы, даже когда приложение еще работает? - PullRequest
2 голосов
/ 30 января 2010

Обычно в Visual Studio часы не могут быть оценены, если отладчик не остановлен на точке останова. Есть ли хитрость или надстройка, чтобы Visual Studio оценивала часы, пока приложение еще работает? Например, оценивать часы каждый раз, когда выполнение пропускает точку в коде, пока он еще работает, и без изменения кода для вставки операторов типа Debug.WriteLine.

Не уверен, что это возможно, но я подумал, что спросить.

Ответы [ 3 ]

1 голос
/ 30 января 2010

Да, это возможно. Установите точку останова в том месте, где вы хотите увидеть значение. Щелкните правой кнопкой мыши точку останова и выберите «При попадании ...». Отметьте галочкой «Распечатать сообщение» и напишите выражение типа {значение}. Сообщение отображается в окне вывода во время работы вашей программы.

0 голосов
/ 30 января 2010

Нет, это невозможно сделать. Функция оценки в Visual Studio представляет собой механизм стекового фрейма. То есть каждая оценка выполняется в контексте данного стекового кадра (если смотреть через окно стека). Когда программа работает, набор кадров стека в настоящее время изменяется, и, следовательно, невозможно выполнить стабильную оценку.

Кроме того, в CLR есть и другие ограничения, которые не позволяют управлять этим кодом. Например, невозможно выполнить функцию, если процесс debugee не находится в очень конкретном состоянии.

0 голосов
/ 30 января 2010

Я бы сделал это, используя директивы компилятора.

#if DEBUG
     Debug.WriteLine
#end if
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...