サーチ…


前書き

あなたのコードに問題があるときはいつも、内部で何が起こっているのかを知ることは常に良い考えです。 .NET FrameworkのSystem.Diagnostics.Debugクラスは、このタスクで多くの手助けをします。

Debugクラスの最初の利点は、デバッグモードでアプリケーションをビルドする場合にのみコードを生成することです。リリースモードでアプリケーションをビルドすると、デバッグ呼び出しからコードが生成されません。

コンソールでのデバッグ

Module Module1
    Sub Main()
        Debug.WriteLine("This line will be shown in the Visual Studio output console")

        Console.WriteLine("Press a key to exit")
        Console.ReadKey()

        Debug.WriteLine("End of application")
    End Sub
End Module

生産する:

Visual Studioでデバッグ出力ウィンドウ

あなたのデバッグ出力をインデントする

Module Module1

    Sub Main()
        Debug.WriteLine("Starting aplication")

        Debug.Indent()
        LoopAndDoStuff(5)
        Debug.Unindent()

        Console.WriteLine("Press a key to exit")
        Console.ReadKey()

        Debug.WriteLine("End of application")
    End Sub

    Sub LoopAndDoStuff(Iterations As Integer)
        Dim x As Integer = 0
        Debug.WriteLine("Starting loop")
        Debug.Indent()
        For i As Integer = 0 To Iterations - 1
            Debug.Write("Iteration " & (i + 1).ToString() & " of " & Iterations.ToString() & ": Value of X: ")
            x += (x + 1)
            Debug.WriteLine(x.ToString())
        Next
        Debug.Unindent()
        Debug.WriteLine("Loop is over")
    End Sub
End Module

生産する: インデント時の出力

テキストファイルでのデバッグ

アプリケーションの開始時に、 TextWriterTraceListenerをDebugクラスのListenersリストに追加する必要があります。

Module Module1

    Sub Main()
        Debug.Listeners.Add(New TextWriterTraceListener("Debug of " & DateTime.Now.ToString() & ".txt"))

        Debug.WriteLine("Starting aplication")

        Console.WriteLine("Press a key to exit")
        Console.ReadKey()

        Debug.WriteLine("End of application")
    End Sub
End Module

生成されたすべてのデバッグコードは、Visual Studioコンソールおよび選択したテキストファイルに出力されます。

ファイルが常に同じ場合:

Debug.Listeners.Add(New TextWriterTraceListener("Debug.txt"))

出力は毎回ファイルに追加され、新しいファイルがGUIDで始まり、ファイル名が生成されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow