추적 및 디버그를 Visual Basic 또는 Visual Basic 2005에서 방법.NET

기술 자료 번역 기술 자료 번역
기술 자료: 313417 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR313417
이 Microsoft Visual Basic 6.0 버전에 대 한 문서, 참조 하십시오 161153.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 디버깅추적 하는 클래스를 사용 하는 방법을 보여 줍니다. 이러한 클래스는 Microsoft에서 사용할 수 있습니다.NET 프레임 워크입니다. 이러한 클래스를 사용 하 여 정보를 제공 하는 응용 프로그램 개발 동안 또는 후 응용 프로그램의 성능 프로덕션에 배포 합니다. 하나의 일부가 이러한 클래스는 계측 기능을 사용할 수는 있습니다.NET 프레임 워크입니다.

요구 사항

다음은 권장된 하드웨어, 소프트웨어 개요 네트워크 인프라 및 필요한 서비스 팩:
  • Microsoft Windows 2000 또는 Microsoft Windows XP
  • Microsoft Visual Basic 2005 또는 Microsoft Visual Basic.NET
이 문서에서는 또한 프로그램에 정통한 있다고 가정 합니다. 디버깅 합니다.

기술 설명

"샘플 사용 하 여 디버그 클래스 만들기" 섹션의 단계에서는 콘솔을 만드는 방법을 보여 줍니다. Debug 클래스를 사용 하 여 프로그램에 대 한 정보를 제공 하는 응용 프로그램 실행 합니다.

프로그램이 실행 되 면 Debug 클래스의 메서드를 검색을 모니터링 하는 데 도움이 되는 메시지를 생성할 수 있습니다. 오작동, 성능 측정 정보를 제공 합니다. 기본적으로, Microsoft Visual Studio 출력 창에서 Debug 클래스가 생성 하는 메시지 표시 통합된 개발 환경 (IDE)입니다.

뒤에 줄에 메시지를 만들기 위해 WriteLine 메서드의 예제 코드를 사용 터미네이터입니다. 이 메서드를 사용 하 여 메시지를 생성 하면 각 메시지가 나타납니다. 출력 창에서에서 별도 줄.

Debug 클래스의 Assert 메서드를 사용 하는 경우 출력 창 메시지를 지정한 경우 표시 조건이 false로 평가 합니다. 메시지 또한 모달 대화 상자로 표시 사용자입니다. 대화 상자 메시지, 프로젝트 이름 및 Debug.Assert 문 번호가 포함 됩니다. 대화 상자 또한 세 가지 명령이 포함 되어 있습니다. 단추:
  • 중단: 실행 하면 응용 프로그램이 중지 됩니다.
  • 다시 시도: 응용 프로그램이 디버그 모드로 진입 합니다.
  • 무시: 응용 프로그램이 진행 됩니다.
사용자가 응용 프로그램 전에 이러한 단추 중 하나를 클릭 해야 계속할 수 있습니다.

또한 Debug 클래스의 출력을 출력 창 이외의 다른 목적지로 보낼 수 있습니다. Debug 클래스 라는 수신기 개체를 포함 하는 수신기 컬렉션을 했습니다. 각 Listener 개체 디버그 출력을 모니터링 하 고 직접 지정한 대상의 출력입니다. 각 수신기Listeners 컬렉션에 Debug 클래스가 생성 하는 출력을 받습니다. TextWriterTraceListener 클래스를 사용 하 여 수신기 개체를 정의 합니다. TextWriterTraceListener 클래스의 생성자를 통해 대상을 지정할 수 있습니다. 일부 출력 대상을 사용할 수 다음과 같습니다.
  • System.Console.Out 속성을 사용 하 여 콘솔 창입니다.
  • System.IO.File.CreateText("FileName.txt")) 문을 사용 하 여 텍스트 (.txt) 파일입니다.
TextWriterTraceListener 개체를 만든 후 디버그 출력을 받도록 하려면 Debug.Listeners 컬렉션에 개체를 추가 해야 합니다.

샘플 디버그 클래스 만들기

  1. 2005 Visual Basic 또는 Visual Basic 사용 합니다.ConInfo 라는 새 콘솔 응용 프로그램 프로젝트를 만들려면 다음과 같이 NET. Module1 이라는 공용 모듈이 프로젝트에 추가 됩니다. 기본값입니다.
  2. 에 대 한 정보를 포함 하는 변수를 초기화 하는 제품, 다음 Dim 문을 추가 합니다.
    Dim sProdName As String = "Widget"
    Dim iUnitQty As Integer = 100
    Dim dUnitCost As Decimal = 1.03
    					
  3. 처음으로 클래스를 생성 하는 메시지를 지정 합니다. WriteLine 메서드의 입력된 매개 변수입니다. 확인 하려면 CTRL + ALT + O 키 조합을 누를 출력 창에 표시 됩니다.
    Debug.WriteLine("Debug Information-Product Starting ")
    					
  4. 읽기 쉽도록 Indent 메서드를 사용 하는 출력 창에서 후속 메시지를 들여씁니다.
    Debug.Indent()
    					
  5. 선택한 변수의 내용을 표시 하려면 다음과 같이 WriteLine 메서드를 사용 합니다.
    Debug.WriteLine("The product name is " & sProdName)
    Debug.WriteLine("The available units on hand are " & iUnitQty)
    Debug.WriteLine("The per unit cost is " & dUnitCost)
    					
  6. 네임 스페이스와 클래스 이름을 표시 하려면 WriteLine 메서드를 수도 있습니다 있는 존재 하는 개체입니다. 예를 들어, 다음 코드는 출력 창에 System.Xml.XmlDocument 네임 스페이스를 표시:
    Dim oxml As New System.Xml.XmlDocument()
    Debug.WriteLine(oxml)
    					
  7. 출력을 구성 하려면 범주를 포함할 수 있는 선택적인 두 번째 입력된 매개 변수를 WriteLine 메서드의. 출력의 형식은 범주를 지정 하는 경우 창 메시지 "범주: 메시지." 예를 들어, 첫 줄에는 다음 코드에 표시 "필드: 위젯 제품 이름인" 출력 창:
    Debug.WriteLine("The product name is " & sProdName, "Field")
    Debug.WriteLine("The units on hand are " & iUnitQty, "Field")
    Debug.WriteLine("The per unit cost is " & dUnitCost, "Field")
    Debug.WriteLine("Total Cost is" & iUnitQty * dUnitCost, "Calc")
    					
  8. 출력 창에 지정 하는 경우 메시지를 표시할 수 있습니다. 디버그 클래스의 WriteLineIf 메서드를 사용 하 여 조건이 true로 평가 되. 조건을 평가할 첫 번째 입력된 매개 변수는 WriteLineIf 방법입니다. 경우에 나타나는 메시지 WriteLineIf 의 두 번째 매개 변수는 첫 번째에서 조건 매개 변수는 true로 평가합니다.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")
    Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")
    					
  9. Debug 클래스의 Assert 메서드를 사용 하는 메시지 경우에만 출력 창에 표시 된 지정한 조건이 false로 평가합니다.
    Debug.Assert(dUnitCost > 1, "Message will NOT appear")
    Debug.Assert(dUnitCost < 1, "Message will appear")
    					
  10. Create the TextWriterTraceListener objects for the Console window (tr1) and for a text file named Output.txt (tr2), and then add each object to the Debug Listeners collection:
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)
    Debug.Listeners.Add(tr1)
            
    Dim tr2 As New _
      TextWriterTraceListener(System.IO.File.CreateText("Output.txt"))
    Debug.Listeners.Add(tr2)
    					
  11. For readability, use the Unindent method to remove the indentation for subsequent messages that the Debug class generates. When you use the Indent and the Unindent methods together, the reader can distinguish the output as group.
    Debug.Unindent()
    Debug.WriteLine("Debug Information-Product Ending")
    					
  12. To ensure that each Listener object receives all of its output, call the Flush method for the Debug class buffers:
    Debug.Flush()
    					

Using the Trace class

You can also use the Trace class to produce messages that monitor the execution of an application. The Trace and Debug classes share most of the same methods to produce output, including:
  • WriteLine
  • WriteLineIf
  • Indent
  • Unindent
  • Assert
  • Flush
You can use the Trace and the Debug classes separately or together in the same application. In a Debug Solution Configuration project, both Trace and Debug output are active. The project generates output from both of these classes to all Listener objects. However, a Release Solution Configuration project only generates output from a Trace class. The Release Solution Configuration project ignores any Debug class method invocations.
Trace.WriteLine("Trace Information-Product Starting ")

Trace.Indent()

Trace.WriteLine("The product name is " & sProdName)
Trace.WriteLine("The product name is " & sProdName, "Field")
Trace.WriteLineIf(iUnitQty > 50, "This message WILL appear")
Trace.Assert(dUnitCost > 1, "Message will NOT appear")

Trace.Unindent()
Trace.WriteLine("Trace Information-Product Ending")
Trace.Flush()
Console.ReadLine()
				

Verify that it works

  1. Make sure that Debug is the current solution configuration.
  2. If the Solution Explorer window is not visible, press the CTRL+ALT+L key combination to display this window.
  3. Right-click conInfo, and then click Properties.
  4. In the left pane of the conInfo property page, under the Configuration folder, make sure that the arrow points to Debugging.
  5. Above the Configuration folder, in the Configuration drop-down list box, click Active (Debug) or Debug, and then click OK.
  6. Press CTRL+ALT+O to display the Output window.
  7. Press the F5 key to run the code. When the Assertion Failed dialog box appears, click Ignore.
  8. In the Console window, press ENTER. The program should finish, and the Output window should display the following output:
    Debug Information-Product Starting 
        The product name is Widget
        The available units on hand are 100
        The per unit cost is 1.03
        System.Xml.XmlDocument
        Field: The product name is Widget
        Field: The units on hand are 100
        Field: The per unit cost is 1.03
        Calc: Total cost is 103
        This message WILL appear
        ---- DEBUG ASSERTION FAILED ----
    ---- Assert Short Message ----
    Message will appear
    ---- Assert Long Message ----
    
        at Module1.Main()  C:\Documents and Settings\Administrator\My 
        Documents\Visual Studio Projects\conInfo\Module1.vb(29)
    
        The product name is Widget
        The available units on hand are 100
        The per unit cost is 1.03
    Debug Information-Product Ending
    Trace Information-Product Starting 
        The product name is Widget
        Field: The product name is Widget
        This message WILL appear
    Trace Information-Product Ending
    						
  9. The Console window and the Output.txt file should display the following output:
    (The Output.txt file is located in the same directory as the conInfo 
    executable, conInfo.exe. Normally this is the \bin folder of where the 
    project source has been stored. By default that would be C:\Documents and 
    Settings\User login\My Documents\Visual Studio Projects\conInfo\bin)
        The product name is Widget
        The available units on hand are 100
        The per unit cost is 1.03
    Debug Information-Product Ending
    Trace Information-Product Starting 
        The product name is Widget
        Field: The product name is Widget
        This message WILL appear
    Trace Information-Product Ending
    						

Complete code listing

Module Module1
    Sub Main()
        Dim sProdName As String = "Widget"
        Dim iUnitQty As Integer = 100
        Dim dUnitCost As Decimal = 1.03

        Debug.WriteLine("Debug Information-Product Starting ")
        Debug.Indent()

        Debug.WriteLine("The product name is " & sProdName)
        Debug.WriteLine("The available units on hand are " & iUnitQty)
        Debug.WriteLine("The per unit cost is " & dUnitCost)

        Dim oxml As New System.Xml.XmlDocument()
        Debug.WriteLine(oxml)

        Debug.WriteLine("The product name is " & sProdName, "Field")
        Debug.WriteLine("The units on hand are " & iUnitQty, "Field")
        Debug.WriteLine("The per unit cost is " & dUnitCost, "Field")
        Debug.WriteLine("Total cost is " & iUnitQty * dUnitCost, "Calc")

        Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")
        Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")

        Debug.Assert(dUnitCost > 1, "Message will NOT appear")
        Debug.Assert(dUnitCost < 1, "Message will appear")

        Dim tr1 As New TextWriterTraceListener(System.Console.Out)
        Debug.Listeners.Add(tr1)

        Dim tr2 As New _
          TextWriterTraceListener(System.IO.File.CreateText("Output.txt"))
        
        Debug.Listeners.Add(tr2)

        Debug.WriteLine("The product name is " & sProdName)
        Debug.WriteLine("The available units on hand are " & iUnitQty)
        Debug.WriteLine("The per unit cost is " & dUnitCost)

        Debug.Unindent()
        Debug.WriteLine("Debug Information-Product Ending")

        Debug.Flush()

        Trace.WriteLine("Trace Information-Product Starting ")

        Trace.Indent()

        Trace.WriteLine("The product name is " & sProdName)
        Trace.WriteLine("The product name is " & sProdName, "Field")
        Trace.WriteLineIf(iUnitQty > 50, "This message WILL appear")
        Trace.Assert(dUnitCost > 1, "Message will NOT appear")

        Trace.Unindent()
        Trace.WriteLine("Trace Information-Product Ending")

        Trace.Flush()

        Console.ReadLine()

    End Sub
End Module
				

Troubleshooting

  • If the solution configuration type is Release, the Debug class output is ignored.
  • After you create a TextWriterTraceListener class for a particular target, TextWriterTraceListener receives output from the Trace and the Debug classes. This occurs regardless of whether you use the Add method of the Trace or the Debug class to add TextWriterTraceListener to the Listeners class.
  • If you add a Listener object for the same target in the Trace and the Debug classes, each line of output is duplicated, regardless of whether Debug or Trace generates the output.
    Dim tr1 As New TextWriterTraceListener(System.Console.Out)
    Debug.Listeners.Add(tr1)
    Dim tr2 As New TextWriterTraceListener(System.Console.Out)
    Trace.Listeners.Add(tr2)
    					

참조

For more information, refer to the following topics in the .NET Framework Class Library documentation:
Trace Class
http://msdn2.microsoft.com/en-us/library/system.diagnostics.trace(vs.71).aspx

Debug Class
http://msdn2.microsoft.com/en-us/library/system.diagnostics.debug(vs.71).aspx


How Do I Instrument a small application with tracing?


http://asp.dotnetheaven.com/howto/doc/TraceDemo.aspx
or

http://quickstart.developerfusion.co.uk/quickstart/howto/doc/TraceDemo.aspx

속성

기술 자료: 313417 - 마지막 검토: 2012년 5월 7일 월요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
키워드:?
kbvs2005swept kbvs2005applies kbvs2002sp1sweep kbbug kbdebug kbhowtomaster kbmt KB313417 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:313417

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com