Debug.WriteLine ничего не показывает
При использовании
using System.Diagnostics;
и
Debug.WriteLine("Test");
запустив приложение, на выходе не видно "Тест". Но если я использую функцию msgbox вместо этого, появляется msgbox, поэтому линия будет достигнута.
Я смотрю в неправильном окне или что мне нужно изменить?
Я использую VС# Express.
Ответы
Ответ 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. Работает большую часть времени.