2010-11-01 2 views
0

Я хочу напечатать отладочные заявления в окне вывода (или где-нибудь еще, что я могу видеть) в Visual Studio 2005. Совет, который я видел, сказал использоватьпечати на консоль в Visual Studio 2005

OutputDebugString("message"); 

и гарантировать, что у меня есть

параметры -> Отладка -> Перенаправление все окно вывода текста в окне Immediate проверил

в то время как код строит хорошо, я не вижу никакого выхода, в чем подвох?

+1

Вы подтвердили, что код отладки действительно попал, например. поставив точку прерывания? –

+0

Вам нужно использовать команду Debug, а не Run. –

+0

Alex: Я уже нажимаю F5 для начала отладки. – opsb

ответ

0

Сначала вы должны работать в режиме отладки.

Затем используйте следующий код (из MSDN):

class Test{ 
static void Main() 
{ 
    Debug.Listeners.Add(new TextWriterTraceListener(Console.Out)); 
    Debug.AutoFlush = true; 
    Debug.Indent(); 
    Debug.WriteLine("Entering Main"); 
    Console.WriteLine("Hello World."); 
    Debug.WriteLine("Exiting Main"); 
    Debug.Unindent(); 
}} 

Вы все увидите в окне Output. Возможно, вам придется перейти в меню View-> Output, чтобы сделать это окно видимым в среде IDE.

+0

Извините, я должен был упомянуть, что я использую C++. Я предполагаю, что это C#? – opsb

2

Если вы используете OutputDebugString, вы также можете использовать SysInternal's DebugView, чтобы увидеть результат. Пока вы не устраните проблемы с отладкой Visual Studio, DebugView должен сделать трюк.

+0

Фантастический, который отлично работает! Я не могу отладчик работать так, чтобы это по крайней мере позволило мне посмотреть, что происходит. – opsb

0

Alt-2 или View-> Выход для открытия окна вывода. По умолчанию он уже должен быть открытым, он обычно находится в окне с вкладками внизу среды IDE (но это зависит от вашего пользовательского макета) и помечено как «Выход».

Выход не направлен на консоль , для этого вам нужно вывести на экран stdout и создать для него консольное окно.

+0

У меня есть окно вывода с раскрывающимся списком, установленным в Debug. Я вижу модули, которые загружаются, и сообщения из IExplorer (процесс, к которому я привязываюсь), но не выводятся из OutputDebugString – opsb

+0

Если процесс, содержащий выходной вызов, не является процессом, к которому вы привязаны, почему вы ожидаете получить выход вообще? ? Или я неправильно понимаю? Он работает для меня, хотя выход легко теряется среди всех других сообщений. – Clifford

0

Если код действительно ударил эту линию, то это может быть:

ПКМ в окне вывода вашего VS в:

alt text

Проверьте, если у вас есть "Программа Output" бесконтрольно, если да, то проверка Это!!!

Хотя этот элемент управления существует в контекстном меню выходных окон, он влияет на вывод в непосредственном окне при его перенаправлении.

+0

У меня есть эта опция – opsb

+0

Может быть, вы можете попробовать переключиться?Кажется, есть некоторые проблемы с вашим отладчиком, и он находится в неустойчивом состоянии ... –

+0

Пробовал это, безрезультатно. Кажется, что проблема связана с запуском отладчика. Я тоже не могу ударить. Это определенно начинается отладчик, потому что пункт меню «Отладка отладки» становится доступным. – opsb

Смежные вопросы