programing tip

System.Diagnostics.Debug.Write 출력은 어디에 나타 납니까?

itbloger 2020. 6. 24. 07:47
반응형

System.Diagnostics.Debug.Write 출력은 어디에 나타 납니까?


다음과 같은 C # 프로그램 (로 빌드 csc hello.cs) Hello via Console!은 콘솔과 Hello via OutputDebugStringDebugView 창 에서만 인쇄 됩니다. 그러나 두 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에서 디버깅하는 동안 "출력"창 (보기-> 출력)을 표시하십시오. 거기에 표시됩니다.


진단 메시지는 대체 텍스트 http://weblogs.asp.net/blogs/romannikitin/WindowsLiveWriter/Sys.DebuginAsp.NetAjaxFramework_3E7D/VS_debug_console_2.png에 표시됩니다 Output Window

.


내가 쓸 때 ( "") debug.write을 직접 실행 창 "이 아닌"출력 창에 "코드에서, 그것은에 출력합니다."

시도해 볼 수 있습니다. "즉시"창을 표시합니다 ( 디버그즉시 ).


내 경우의 해결책은 다음과 같습니다.

  1. 출력 창을 마우스 오른쪽 버튼으로 클릭하십시오.
  2. '프로그램 출력'을 확인하십시오

VB.NET의 경우 다음이 적용됩니다. "디버그"를 선택하고 "디버깅 시작"인지 확인해야합니다. 을 눌러 도달 할 수 있습니다 F5.

또한 Console.WriteLine은 출력 창에서 "릴리스"로 빌드 할 때만 메시지를 표시합니다.

앞에서 언급했듯이 ViewOutput으로 Output 창을 열고 Console.WriteLine 메시지를 보려면 "Build"를 선택하고 Debug.WriteLine 또는 Trace.WriteLine 메시지를 보려면 "Debug"를 선택하십시오.

참고 URL : https://stackoverflow.com/questions/1159755/where-does-system-diagnostics-debug-write-output-appear

반응형