Bagaimana trace dan debug dalam Visual Basic 2005 atau Visual Basic.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 313417 - Melihat produk di mana artikel ini berlaku.
Untuk versi Microsoft Visual Basic 6.0 ini Pasal, lihat 161153.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan bagaimana untuk menggunakan Debug dan Jejak kelas. Kelas-kelas ini tersedia di Microsoft.NET Kerangka. Anda dapat menggunakan kelas-kelas ini menyediakan informasi tentang kinerja aplikasi baik selama pengembangan aplikasi atau setelah penyebaran ke produksi. Kelas-kelas ini adalah hanya salah satu bagian dari instrumentasi fitur yang tersedia di.NET Kerangka.

Persyaratan

Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
  • Microsoft Windows 2000 atau Microsoft Windows XP
  • Microsoft Visual Basic 2005 atau Microsoft Visual Basic.NET
Artikel ini juga mengasumsikan bahwa Anda sudah familiar dengan program debugging.

Deskripsi teknik

Langkah-langkah di bagian "Buat sampel dengan kelas Debug" menunjukkan cara membuat konsol aplikasi yang menggunakan Debug kelas untuk memberikan informasi tentang program eksekusi.

Ketika program dijalankan, Anda dapat menggunakan metode Debug kelas untuk menghasilkan pesan yang membantu untuk memantau, untuk mendeteksi malfungsi, atau untuk memberikan informasi pengukuran kinerja. Secara default, pesan yang Debug kelas menghasilkan muncul di jendela Output dari Microsoft Visual Studio Lingkungan pengembangan terpadu (IDE).

Contoh kode menggunakan WriteLine metode untuk menghasilkan pesan yang diikuti oleh baris Terminator. Ketika Anda menggunakan metode ini untuk menghasilkan pesan, pesan akan muncul di baris yang terpisah di jendela Output.

Jika Anda menggunakan Menegaskan metode Debug kelas, jendela Output menampilkan pesan hanya jika tertentu kondisi mengevaluasi ke false. Juga muncul dalam sebuah kotak modal dialog untuk pengguna. Kotak dialog berisi pesan, nama proyek, dan Debug.assert pernyataan nomor. Kotak dialog juga mencakup tiga perintah tombol:
  • Membatalkan: Aplikasi berhenti berjalan.
  • Coba lagi: Aplikasi memasuki modus debug.
  • Mengabaikan: Aplikasi hasil.
Pengguna harus klik salah satu tombol-tombol ini sebelum aplikasi dapat melanjutkan.

Anda juga dapat langsung output dari Debug kelas untuk tujuan selain jendela Output. The Debug kelas memiliki koleksi bernama Pendengar itu termasuk Pendengar objek. Setiap Pendengar objek monitor Debug output dan mengarahkan output untuk target tertentu. Setiap Pendengar dalam Pendengar Koleksi menerima output yang Debug kelas menghasilkan. Penggunaan TextWriterTraceListener kelas untuk menentukan Pendengar objek. Anda dapat menentukan target TextWriterTraceListener kelas melalui yang konstruktor. Beberapa mungkin keluaran target meliputi:
  • Jendela konsol dengan menggunakan System.Console.out properti.
  • File teks (.txt) dengan menggunakan System.io.file.CreateText("filename.txt")) pernyataan.
Setelah Anda membuat TextWriterTraceListener objek, Anda harus menambahkan objek Debug.listeners Koleksi untuk menerima Debug output.

Membuat sampel dengan kelas Debug

  1. Menggunakan Visual Basic 2005 atau Visual Basic.NET untuk membuat sebuah proyek konsol aplikasi baru yang bernama conInfo. Modul publik yang bernama Module1 ditambahkan ke proyek oleh default.
  2. Untuk menginisialisasi variabel berisi informasi tentang produk, tambahkan berikut Remang-remang pernyataan:
    Dim sProdName As String = "Widget"
    Dim iUnitQty As Integer = 100
    Dim dUnitCost As Decimal = 1.03
    					
  3. Menentukan pesan yang kelas menghasilkan sebagai yang pertama input parameter WriteLine metode. Tekan CTRL + ALT + O kombinasi tombol untuk memastikan bahwa Keluaran jendela terlihat.
    Debug.WriteLine("Debug Information-Product Starting ")
    					
  4. Untuk dibaca, menggunakan Indentasi metode untuk saltie pesan berikutnya di jendela Output:
    Debug.Indent()
    					
  5. Untuk menampilkan isi dari variabel dipilih, gunakan WriteLine metode sebagai berikut:
    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. Anda juga dapat menggunakan WriteLine metode untuk menampilkan ruang nama dan nama kelas untuk ada objek. Sebagai contoh, berikut kode menampilkan System.xml.XmlDocument namespace dalam jendela Output:
    Dim oxml As New System.Xml.XmlDocument()
    Debug.WriteLine(oxml)
    					
  7. Untuk mengatur output, Anda dapat menyertakan Kategori sebagai Opsional, kedua parameter input WriteLine metode. Jika Anda menentukan kategori, format Output jendela pesan "Kategori: pesan." Misalnya, baris pertama Berikut kode menampilkan "lapangan: nama produk adalah Widget" dalam Output jendela:
    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. Jendela Output dapat menampilkan pesan hanya jika ditunjuk kondisi mengevaluasi true dengan menggunakan WriteLineIf metode Debug kelas. Kondisi dievaluasi adalah parameter input pertama dari WriteLineIf metode. Parameter kedua WriteLineIf pesan yang muncul hanya jika kondisi pertama parameter mengevaluasi true.
    Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear")
    Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear")
    					
  9. Penggunaan Menegaskan metode Debug kelas sehingga Output jendela menampilkan pesan hanya jika kondisi tertentu mengevaluasi ke false:
    Debug.Assert(dUnitCost > 1, "Message will NOT appear")
    Debug.Assert(dUnitCost < 1, "Message will appear")
    					
  10. Membuat TextWriterTraceListener objek untuk jendela konsol (tr1) dan untuk file teks yang bernama Output.txt (tr2), dan kemudian tambahkan setiap objek untuk Debug pendengar Koleksi:
    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. Untuk dibaca, menggunakan Unindent metode untuk menghapus indentasi untuk berikutnya pesan yangDebug kelas menghasilkan. Ketika Anda menggunakan Indentasi dan Unindent metode bersama-sama, pembaca dapat membedakan output sebagai kelompok.
    Debug.Unindent()
    Debug.WriteLine("Debug Information-Product Ending")
    					
  12. Untuk memastikan bahwa masing-masing Pendengar objek menerima semua keluarannya, panggilan Flush metode untuk Debug kelas buffer:
    Debug.Flush()
    					

Menggunakan kelas jejak

Anda juga dapat menggunakan Jejak kelas untuk menghasilkan pesan yang memantau pelaksanaan aplikasi. The Jejak dan Debug kelas berbagi sebagian besar metode yang sama untuk menghasilkan output, termasuk:
  • WriteLine
  • WriteLineIf
  • Indentasi
  • Unindent
  • Menegaskan
  • Flush
Anda dapat menggunakan Jejak dan Debug kelas secara terpisah atau bersama-sama di aplikasi yang sama. Dalam Debug solusi konfigurasi proyek, baik Jejak dan Debug output aktif. Proyek menghasilkan output dari kedua kelas-kelas ini untuk semua Pendengar objek. Namun, solusi rilis konfigurasi proyek hanya menghasilkan output dari Jejak kelas. Proyek rilis solusi konfigurasi mengabaikan apapun Debug pemberkatan metode kelas.
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()
				

Memverifikasi bahwa ia bekerja

  1. Pastikan bahwa Debug adalah konfigurasi solusi saat ini.
  2. Jika jendela Explorer solusi tidak terlihat, tekan CTRL + ALT + L kombinasi tombol untuk menampilkan jendela ini.
  3. Klik kanan conInfo, lalu klik Properti.
  4. Di sisi kiri halaman properti conInfo, di bawah Konfigurasi folder, pastikan bahwa tanda panah menunjuk ke Debugging.
  5. Di atas konfigurasi folder, dalam Konfigurasi daftar drop-down box, klik Aktif (Debug) atau Debug, lalu klik Oke.
  6. Tekan CTRL + ALT + O untuk menampilkan jendela Output.
  7. Tekan tombol F5 untuk menjalankan kode. Ketika Pernyataan yang gagal kotak dialog muncul, klik Mengabaikan.
  8. Di jendela konsol, tekan ENTER. Program harus selesai, dan jendela Output harus menampilkan output berikut:
    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. Jendela konsol dan Output.txt file harus menampilkan output berikut:
    (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
    						

Daftar kode lengkap

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
				

Pemecahan Masalah

  • Jika jenis konfigurasi solusi Peluncuran, the Debug kelas output diabaikan.
  • Setelah Anda membuat TextWriterTraceListener kelas untuk target tertentu, TextWriterTraceListener menerima output dari Jejak dan Debug kelas. Hal ini terjadi terlepas dari apakah Anda menggunakan Tambahkan metode Jejak atau Debug kelas untuk menambahkan TextWriterTraceListener untuk Pendengar kelas.
  • Jika Anda menambahkan Pendengar objek untuk target yang sama di Jejak dan Debug kelas, setiap baris output digandakan, terlepas dari apakahDebug atau Jejak menghasilkan 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)
    					

REFERENSI

Untuk informasi lebih lanjut, lihat topik berikut di .NET Framework kelas perpustakaan dokumentasi:
Jejak kelas
.aspx http://msdn2.Microsoft.com/en-us/library/System.Diagnostics.Trace (vs.71)

Debug kelas
.aspx http://msdn2.Microsoft.com/en-us/library/System.Diagnostics.debug (vs.71)


Bagaimana saya instrumen sebuah aplikasi kecil dengan melacak?http://Samples.gotdotnet.com/Quickstart/Howto/doc/TraceDemo.aspx

Properti

ID Artikel: 313417 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Kata kunci: 
kbvs2005swept kbvs2005applies kbvs2002sp1sweep kbbug kbdebug kbhowtomaster kbmt KB313417 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:313417

Berikan Masukan

 

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