Debug 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
코드 디버깅에 도움이 되는 메서드 및 속성들을 제공합니다.
public ref class Debug abstract sealed
public ref class Debug sealed
public static class Debug
public sealed class Debug
type Debug = class
Public Class Debug
Public NotInheritable Class Debug
- 상속
-
Debug
예제
다음 예제에서는 를 사용하여 Debug 프로그램 실행의 시작과 끝을 나타냅니다. 또한 이 예제에서는 및 Unindent 를 사용하여 Indent 추적 출력을 구분합니다.
// Specify /DDEBUG when compiling.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
int main( void )
{
#if defined(DEBUG)
Debug::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
Debug::AutoFlush = true;
Debug::Indent();
Debug::WriteLine( "Entering Main" );
#endif
Console::WriteLine( "Hello World." );
#if defined(DEBUG)
Debug::WriteLine( "Exiting Main" );
Debug::Unindent();
#endif
return 0;
}
// Specify /d:DEBUG when compiling.
using System;
using System.Data;
using System.Diagnostics;
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();
}
}
' Specify /d:DEBUG=True when compiling.
Imports System.Data
Imports System.Diagnostics
Class Test
Shared Sub 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()
End Sub
End Class
설명
배송 제품의 성능 및 코드 크기에 영향을 주지 않고 코드를 보다 강력하게 만들려면 클래스의 메서드 Debug 를 사용하여 디버깅 정보를 인쇄하고 논리를 어설션으로 검사.
이 클래스는 대화 상자를 표시 Assert 하고 항상 실패할 어설션을 내보내는 메서드를 제공합니다. 이 클래스는 다음과 같은 변형에서 쓰기 메서드를 제공합니다.
및 TraceSwitch 클래스는 BooleanSwitch 추적 출력을 동적으로 제어하는 수단을 제공합니다. .NET Framework 앱의 경우 애플리케이션을 다시 컴파일하지 않고 이러한 스위치의 값을 수정할 수 있습니다. 구성 파일을 사용하여 .NET Framework 앱에서 스위치를 설정하는 방법에 대한 자세한 내용은 클래스 및 추적 스위치 문서를 참조 Switch 하세요.
컬렉션에 인스턴스를 추가 TraceListener 하거나 컬렉션에서 Listeners 인스턴스를 제거하여 추적 출력의 대상을 사용자 지정할 수 있습니다. 컬렉션은 Listeners 및 Trace 클래스 둘 다 Debug 에서 공유됩니다. 두 클래스에 추적 수신기를 추가하면 수신기가 둘 다에 추가됩니다. 기본적으로 클래스는 DefaultTraceListener 추적 출력을 내보낸다.
참고
추적 수신기를 컬렉션에 Listeners 추가하면 추적 수신기에서 사용하는 리소스를 사용할 수 없는 경우 추적하는 동안 예외가 throw될 수 있습니다. throw된 조건 및 예외는 추적 수신기에 따라 달라지며 이 문서에서 열거할 수 없습니다. 추적 수신기의 예외를 검색하고 처리하기 위해 메서드를 Debug 블록에 try
/catch
호출하는 것이 유용할 수 있습니다.
메서드 또는 속성을 사용하여 들여쓰기 수준을 수정할 IndentIndentLevel 수 있습니다. 들여쓰기 간격을 수정하려면 속성을 사용합니다 IndentSize . 속성을 true
로 설정하여 각 쓰기 후에 출력 버퍼를 AutoFlush 자동으로 플러시할지 여부를 지정할 수 있습니다.
.NET Framework 앱의 경우 앱의 구성 파일을 편집하여 및 IndentSize 를 Debug 설정할 AutoFlush 수 있습니다. 다음 예제와 같이 구성 파일의 형식을 지정해야 합니다.
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="7" />
</system.diagnostics>
</configuration>
특성은 ConditionalAttribute 의 Debug메서드에 적용됩니다. 를 조건부 컴파일 기호로 정의하지 않는 한 DEBUG
이러한 메서드에 대한 호출을 지원하는 ConditionalAttribute 컴파일러가 무시됩니다. 가 지원되는지 여부 ConditionalAttribute 와 조건부 컴파일 기호를 정의하기 위한 구문을 확인하려면 컴파일러의 설명서를 참조하세요.
참고
Visual Studio C# 및 Visual Basic 프로젝트에서 기본적으로 DEBUG
조건부 컴파일 기호는 디버그 빌드에 대해 정의되며 디버그 및 TRACE
릴리스 빌드 모두에 대해 기호가 정의됩니다. Visual C++의 조건부 디버깅에 대한 자세한 내용은 디버그 클래스(C++/CLI)를 참조하세요.
C#에서 조건부 컴파일 기호를 정의 DEBUG
하려면 명령줄을 사용하여 코드를 컴파일할 때 컴파일러 명령줄에 옵션을 추가 /d:DEBUG
하거나 파일 맨 위에 를 추가 #define DEBUG
합니다. Visual Basic에서 컴파일러 명령줄에 옵션을 추가 /d:DEBUG=True
하거나 파일에 추가 #Const DEBUG=True
합니다.
속성
AutoFlush |
각 쓰기 직후에 Flush()에서 Listeners를 호출해야 하는지 여부를 나타내는 값을 가져오거나 설정합니다. |
IndentLevel |
들여쓰기 수준을 가져오거나 설정합니다. |
IndentSize |
들여쓰기의 공백 수를 가져오거나 설정합니다. |
Listeners |
디버그 출력을 모니터링하는 수신기 컬렉션을 가져옵니다. |
메서드
Assert(Boolean) |
조건을 확인합니다. 조건이 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
조건을 확인합니다. 조건이 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
조건을 확인합니다. 조건이 |
Assert(Boolean, String) |
조건을 확인합니다. 조건이 |
Assert(Boolean, String, String) |
조건을 확인합니다. 조건이 |
Assert(Boolean, String, String, Object[]) |
조건을 확인합니다. 조건이 |
Close() |
출력 버퍼를 플러시한 다음 각 Listeners에 대해 |
Fail(String) |
지정된 오류 메시지를 내보냅니다. |
Fail(String, String) |
오류 메시지와 자세한 오류 메시지를 내보냅니다. |
Flush() |
출력 버퍼를 플러시하고 버퍼링된 데이터가 Listeners 컬렉션에 쓰여지도록 합니다. |
Indent() |
현재 IndentLevel 이 1씩 증가합니다. |
Print(String) |
Listeners 컬렉션의 추적 수신기에 메시지를 쓰고 뒤에 줄 종결자를 붙입니다. |
Print(String, Object[]) |
Listeners 컬렉션의 추적 수신기에 서식이 지정된 문자열을 쓰고 뒤에 줄 종결자를 붙입니다. |
Unindent() |
현재 IndentLevel 을 1씩 줄입니다. |
Write(Object) |
ToString() 컬렉션의 추적 수신기에 개체의 Listeners 메서드 값을 씁니다. |
Write(Object, String) |
ToString() 컬렉션의 추적 수신기에 범주 이름 및 개체의 Listeners 메서드 값을 씁니다. |
Write(String) |
Listeners 컬렉션의 추적 수신기에 메시지를 씁니다. |
Write(String, String) |
Listeners 컬렉션의 추적 수신기에 범주 이름 및 메시지를 씁니다. |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
가 이 |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
지정된 조건이 |
WriteIf(Boolean, Object) |
조건이 ToString() 인 경우 Listeners 컬렉션의 추적 수신기에 개체의 |
WriteIf(Boolean, Object, String) |
조건이 ToString() 인 경우 Listeners 컬렉션의 추적 수신기에 범주 이름 및 개체의 |
WriteIf(Boolean, String) |
조건이 |
WriteIf(Boolean, String, String) |
조건이 Listeners 이면 |
WriteLine(Object) |
ToString() 컬렉션의 추적 수신기에 개체의 Listeners 메서드 값을 씁니다. |
WriteLine(Object, String) |
ToString() 컬렉션의 추적 수신기에 범주 이름 및 개체의 Listeners 메서드 값을 씁니다. |
WriteLine(String) |
Listeners 컬렉션의 추적 수신기에 메시지를 쓰고 뒤에 줄 종결자를 붙입니다. |
WriteLine(String, Object[]) |
Listeners 컬렉션의 추적 수신기에 서식이 지정된 메시지를 쓰고 뒤에 줄 종결자를 붙입니다. |
WriteLine(String, String) |
Listeners 컬렉션의 추적 수신기에 범주 이름 및 메시지를 씁니다. |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
지정된 조건이 |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
지정된 조건이 |
WriteLineIf(Boolean, Object) |
조건이 ToString() 인 경우 Listeners 컬렉션의 추적 수신기에 개체의 |
WriteLineIf(Boolean, Object, String) |
조건이 ToString() 인 경우 Listeners 컬렉션의 추적 수신기에 범주 이름 및 개체의 |
WriteLineIf(Boolean, String) |
조건이 |
WriteLineIf(Boolean, String, String) |
조건이 Listeners 이면 |
적용 대상
스레드 보안
이 형식은 스레드로부터 안전합니다.
추가 정보
.NET