다음과 같은 C # 프로그램 (로 빌드 됨 csc hello.cs
) Hello via Console!
은 콘솔과 Hello via OutputDebugString
DebugView 창 에서만 인쇄 됩니다. 그러나 두 System.Diagnostics.*
통화 중 하나를 볼 수 없습니다 . 왜 그런 겁니까?
using System;
using System.Runtime.InteropServices;
class Hello {
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
public static extern void OutputDebugString(string message);
static void Main() {
Console.Write( "Hello via Console!" );
System.Diagnostics.Debug.Write( "Hello via Debug!" );
System.Diagnostics.Trace.Write( "Hello via Trace!" );
OutputDebugString( "Hello via OutputDebugString" );
}
}
특별한 명령 행 스위치가 필요할 수 csc
있습니까?
개발에 Visual Studio를 사용하지 않고 있으며 이것은 순수한 명령 줄입니다.
답변
다른 사람들이 지적했듯이 이러한 스트림을 읽으려면 리스너를 등록해야합니다. 또한주의 Debug.Write
경우 생성만이 기능을 DEBUG
하면서 빌드 플래그가 설정되어있는 Trace.Write
경우에만 함수한다면 TRACE
빌드 플래그가 설정됩니다.
Visual Studio의 프로젝트 속성에서 또는 csc.exe에 다음 인수를 제공 하여 DEBUG
및 / 또는 TRACE
플래그를 쉽게 설정할 수 있습니다.
/define:DEBUG;TRACE
답변
디버깅하는 동안 System.Diagnostics.Debug.WriteLine
출력 창에 표시됩니다 ( Ctrl+ Alt+O )에 컬렉션에 a TraceListener
를 추가하여 다른 위치에서 출력 할 호출을 Debug.Listeners
지정할 수도 있습니다 Debug.WriteLine
.
참고 : 도구 → 옵션 → 디버깅 → 일반Debug.WriteLine
메뉴에서 Visual Studio 옵션 “모든 출력 창 텍스트를 즉시 창으로 리디렉션”이 선택된 경우 호출이 출력 창에 표시되지 않을 수 있습니다 . “표시하려면 도구 → 옵션 → 디버깅 “, “옆에있는 상자를 선택 도구 → 옵션 → 보기 모든 설정 “.
답변
TraceListener
콘솔에 표시 되려면를 추가해야합니다 .
TextWriterTraceListener writer = new TextWriterTraceListener(System.Console.Out);
Debug.Listeners.Add(writer);
디버그 모드 일 때 Visual Studio 출력 창에도 나타납니다.
답변
Visual Studio에서 디버깅하는 동안 “출력”창 (보기-> 출력)을 표시하십시오. 거기에 표시됩니다.
답변
진단 메시지가 출력 창에 표시됩니다.
답변
debug.write ( “”)를 쓸 때 직접 실행 창 “이 아닌”출력 창에 “코드에서, 그것은에 출력합니다.”
시도해 볼 수 있습니다. “즉시”창을 표시합니다 ( 디버그 → 창 → 즉시 ).
답변
내 경우의 해결책은 다음과 같습니다.
- 출력 창을 마우스 오른쪽 버튼으로 클릭하십시오.
- ‘프로그램 출력’을 확인하십시오
