Как фильтровать выходные данные в Visual Studio 2012+?
У меня возникает проблема с проверкой конкретных вещей в моем выпуске Debug.WriteLn
в Visual Studio 2015. (То же самое и в версии 2012 и 2013 годов.)
XCode и Eclipse включают в себя фильтр-окно поверх окна Output
. Я попытался найти аналогичное расширение для Visual Studio, но мне не повезло. Есть ли способ иметь подобную функцию и фильтровать окно вывода?
Ответы
Ответ 1
Различные службы VS записываются в выходное окно, поэтому на основе источника создается встроенный фильтр. Вы можете часто выбирать источник, такой как "Build Output", "Test discovery", "General", "Debug" и т.д.
Вызовы Debug.Write перехватываются VS, и текст заканчивается в окне Output, но нет встроенной фильтрации.
Я могу думать о 3 способах этого:
- Используйте DbgView для перехвата сообщений Debug.Write вместо того, чтобы позволить VS перехватить их. DbgView имеет очень мощные функции фильтрации и раскраски *
- Попробуйте это расширение, которое окрашивает вывод на основе регулярных выражений
- Напишите свое собственное расширение (это не так сложно!)
(*) Если вы спуститесь по этому маршруту, обратите внимание, что Debug.Write - это просто трассировка, и когда вы присоединяете отладчик VS, он добавит себя в качестве лидера трассировки. То же самое для DbgView. Но когда вы отсоедините его, он не удалит слушателя, и сообщения будут потеряны.
Ответ 2
Я использую этот метод:
Откройте окно "Отладка - выход", просто щелкнув правой кнопкой мыши по окну.
![введите описание изображения здесь]()
Вы можете проверить/снять флажок в соответствии с вашими потребностями.
Ответ 3
Одна вещь, которую я только что нашел в VS 2017 (и я думаю, что она также в других версиях):
Tools | Options | Debugging | General > Redirect all Output Window text to the Immediate Window
Это дает вам только выход программы Debug.Write
X
в непосредственном окне и оставляет все остальное содержимое в окне вывода, которое вы можете оставить закрытым.
Я все еще могу посмотреть на корзину в окне вывода, если мне нужно по какой-то причине; он не подавляется. Он просто не попадает в непосредственное окно.
И я просто оставлю небольшое мгновенное окно, состыкованное внизу.
Я думаю, что это хорошо, потому что со всем мусором, выходящим в окне вывода, я действительно больше не обращал внимания на результат, чем на соглашение об использовании (то есть почти ничего) так что ребенок был выброшен с водой для ванны. Но теперь я на самом деле вижу некоторый отладочный вывод программы, который нужен и требует внимания.
IMHO Microsoft должна расширить раскрывающееся окно окна вывода, чтобы включить все категории, которые FetFrumos указал в его ответе, поэтому разработчики могут просто оставить его в "Program Output". Я думаю, что это будет хорошим улучшением.
Ответ 4
Я хотел фильтровать вывод Visual Studio в течение многих лет. В конце концов я решил написать расширение, чтобы сделать это. Если вам интересно, вы можете проверить это на niahtextfilter.com.
Вот идея того, что он делает:
![Niah Text Filter filtering some debug output]()