Почему мой Debug.Write сломан? - PullRequest
       17

Почему мой Debug.Write сломан?

3 голосов
/ 10 февраля 2010

Может кто-нибудь объяснить, почему мой Debug.Write перестает работать без видимой причины - ничего не видно? Это случалось со мной много раз в Visual Studio 2008 (никогда в 2005 году), как в Windows XP, Windows 2003 Server, так и в Windows 7.

Это для каждого проекта и в то же время (на сервере Windows 2003), у меня есть проекты, в которых Debug.Write работает и не работает.

В настоящее время в Windows 7 у меня вообще нет отладочной информации. Я создаю новый проект Windows Forms, помещаю Debug.Write ("bla") в Form_Load и запускаю его, а в окне вывода ничего не происходит. Одинаковое поведение в проектах vb.net и c #.

ОБНОВЛЕНИЕ: Я только что обнаружил, что мои выходные данные отладки показываются, но в моем Немедленном окне вместо вывода. Почему ???

ОБНОВЛЕНИЕ: в параметрах Visual Studio есть параметр в разделе «Отладка» - «Общие»: перенаправить весь текст окна вывода в окно «Немедленно».

Почему это было проверено по умолчанию, я понятия не имею ...

Ответы [ 4 ]

5 голосов
/ 10 февраля 2010

Инструменты> Параметры> Отладка, Общие имеет настройку, которая перенаправляет весь вывод в ближайшее окно.

1 голос
/ 10 февраля 2010

Если вы определенно работаете в режиме отладки , тогда я бы предложил быстрый проект с простым Debug.Print в загрузке формы. Если вы можете заставить его работать в новом проекте, то это может быть связано с дополнительными ссылками , которые вы включили в свой оригинальный проект.

Это появляется в любом из окон?


РЕДАКТИРОВАТЬ: Найдено это здесь

a) Перейдите в меню Сервис, затем Параметры. Здесь убедитесь, что у вас есть «Показать все настройки» в нижней левой части экрана параметров.

b) Перейдите к: Отладка -> Общие

в) Убедитесь, что у вас есть опция «Перенаправить весь текст окна вывода в окно немедленного действия»

0 голосов
/ 10 февраля 2010

В окне «Вывод» вы уверены, что «Отладка» выбрана в раскрывающемся меню «Показать вывод из:»? Просто мысль!

0 голосов
/ 10 февраля 2010

Вы строите сборку релиза по ошибке? Сборка релиза не будет компилироваться в вызовах Debug.Write().

Из документов MSDN (http://msdn.microsoft.com/en-us/library/system.diagnostics.debug.aspx):

Атрибут ConditionalAttribute применяется к методам отладки. Компиляторы, которые поддерживают ConditionalAttribute, игнорируют вызовы этих методов, если «DEBUG» не определен как символ условной компиляции. Обратитесь к документации компилятора, чтобы определить, поддерживается ли ConditionalAttribute и синтаксис для определения условного символа компиляции.

Чтобы определить символ условной компиляции "DEBUG" в C # и J #, добавьте опцию /d:DEBUG в командную строку компилятора при компиляции кода или добавьте #define DEBUG в начало вашего файла. В Visual Basic добавьте параметр /d:DEBUG=True в командную строку компилятора или добавьте #Const DEBUG=True в файл.

Также обратите внимание, что метод Debug.Write() отправляет свои выходные данные в коллекцию TraceListeners, в которую можно добавлять или удалять прослушиватели во время выполнения или с помощью файла конфигурации - убедитесь, что любой файл конфигурации не изменяется там, где должен быть вывод отладочной информации. собирается.

...