Подтвердить что ты не робот

Debug.WriteLine ничего не показывает

При использовании

using System.Diagnostics;

и

Debug.WriteLine("Test");

запустив приложение, на выходе не видно "Тест". Но если я использую функцию msgbox вместо этого, появляется msgbox, поэтому линия будет достигнута.

Я смотрю в неправильном окне или что мне нужно изменить?

Я использую VС# Express.

4b9b3361

Ответ 1

Есть две вероятные причины этого поведения

  • Приложение компилируется в режиме деблокирования, а вызов Debug.WriteLine не входит в окончательную программу
  • В программе нет прослушивателя трассировки и, следовательно, нечего выводить сообщение

Самый простой способ диагностировать это - изменить код на

#if DEBUG
Console.WriteLine("the message");
#endif

Если он печатает, у вас есть проблема с прослушивателями трассировки, иначе вы компилируете в Release

Ответ 2

В меню > инструменты > параметры > отладкa > Общие сведения:

  • Убедитесь, что "Перенаправить все окна окна вывода в непосредственное окно" НЕ проверяется.

В свойствах проектa > Сборка:

  • Конфигурация: Отладка
  • "Определить константу DEBUG" проверяется
  • "Определить константу TRACE" отмечен

В окне вывода:

  • Показать вывод: Debug
  • Щелкните правой кнопкой мыши в окне вывода и убедитесь, что отмечен "Выход программы".

Ответ 3

Я считаю, что Debug.WriteLine() "записывает в коллекцию Listeners. Оттуда вы можете определить, где будет записываться отладочная информация. По умолчанию" Выход" должен быть там, где он появляется, но если у вас возникли проблемы с просмотром информации, тогда создайте другого слушателя, чтобы захватить информацию об отладке.

Вот пример MSDN:

TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out);
Debug.Listeners.Add(myWriter);

Ответ 4

Я не уверен, что кто-то упомянул об этой причине, но если я скомпилирую в режиме Debug, а затем просто запустите программу (Ctrl + F5) вместо выбора "Начать отладку" (F5), я не увижу Debug.WriteLine либо.

Поэтому недостаточно просто компилировать в режиме отладки, вам также нужно активно отлаживать программу, а не просто запускать ее:)

Ответ 5

Debug.WriteLine("Test"); должен отображаться в окне вывода, когда вы находитесь в режиме отладки. Если вы хотите отладить запущенное приложение (режим Release), вы можете использовать Trace, который будет отображаться в событиях Windows.

Ответ 6

Ответ прост. Возможно, вы нажмете ctrl + F5, что означает "Запуск без отладки". Просто нажмите F5 в Start Debugging.

введите описание изображения здесь

Ответ 7

Для всех, кто ищет: Хотя существуют различные ответы, которые указывают на удаление слушателей в файле конфигурации, также следите за

<remove name="OPTIONSVerbHandler" />

в разделе

<handlers>

Поскольку это также подавляет вывод отладки.

Ответ 8

В случае, если какой-либо из других ответов не работает. Попытайтесь разместить точку разрыва в строке Debug.WriteLine и посмотреть, попадает ли она.

Если это не ударит, причина в том, что выполняется старая версия кода.

Чтобы исправить это, сначала проверьте это

Источник

Перейдите в раздел "Параметры-Сервис"

В разделе "Проекты и решение" → "Сборка и запуск" выберите "Всегда строить", в разделе "Вкл.", когда проекты устарели "

enter image description here

И проверьте, очищены ли временные файлы. Проверьте этот SO вопрос

Это сработало для меня.

Если даже это не удается, попробуйте перезагрузить VS. Работает большую часть времени.