Bagikan melalui


Debug Kelas

Definisi

Menyediakan sekumpulan metode dan properti yang membantu men-debug kode Anda.

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
Warisan
Debug

Contoh

Contoh berikut menggunakan Debug untuk menunjukkan awal dan akhir eksekusi program. Contohnya juga menggunakan Indent dan Unindent untuk membedakan output pelacakan.

// 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

Keterangan

Untuk membuat kode Anda lebih kuat tanpa memengaruhi performa dan ukuran kode produk pengiriman Anda, gunakan metode di Debug kelas untuk mencetak informasi penelusuran kesalahan dan memeriksa logika Anda dengan pernyataan.

Kelas ini menyediakan metode untuk menampilkan Assert kotak dialog, dan untuk memancarkan pernyataan yang akan selalu gagal. Kelas ini menyediakan metode tulis dalam variasi berikut:

Kelas BooleanSwitch dan TraceSwitch menyediakan sarana untuk mengontrol output pelacakan secara dinamis. Untuk aplikasi .NET Framework, Anda dapat memodifikasi nilai sakelar ini tanpa mengolah ulang aplikasi Anda. Untuk informasi tentang menggunakan file konfigurasi untuk mengatur sakelar di aplikasi .NET Framework, lihat Switch kelas dan artikel Lacak Pengalihan.

Anda dapat menyesuaikan target output pelacakan dengan menambahkan TraceListener instans ke atau menghapus instans dari Listeners koleksi. Koleksi Listeners dibagikan oleh Debug dan Trace kelas; menambahkan pendengar jejak ke salah satu kelas menambahkan pendengar ke keduanya. Secara default, kelas memancarkan DefaultTraceListener output jejak.

Catatan

Menambahkan pendengar jejak ke Listeners koleksi dapat menyebabkan pengecualian dilemparkan saat melacak, jika sumber daya yang digunakan oleh pendengar pelacakan tidak tersedia. Kondisi dan pengecualian yang dilemparkan tergantung pada pendengar jejak dan tidak dapat dijumlahkan dalam artikel ini. Mungkin berguna untuk melakukan panggilan ke Debug metode dalam try/catch blok untuk mendeteksi dan menangani pengecualian apa pun dari pendengar pelacakan.

Anda dapat mengubah tingkat indentasi menggunakan Indent metode atau IndentLevel properti . Untuk mengubah penspasian inden, gunakan IndentSize properti . Anda dapat menentukan apakah akan secara otomatis menghapus buffer output setelah setiap penulisan AutoFlush dengan mengatur properti ke true.

Untuk aplikasi .NET Framework, Anda dapat mengatur AutoFlush dan IndentSize untuk Debug dengan mengedit file konfigurasi aplikasi Anda. File konfigurasi harus diformat seperti yang ditunjukkan dalam contoh berikut.

<configuration>
  <system.diagnostics>
    <trace autoflush="true" indentsize="7" />
  </system.diagnostics>
</configuration>

Atribut ConditionalAttribute diterapkan ke metode Debug. Pengkompilasi yang mendukung ConditionalAttribute mengabaikan panggilan ke metode ini kecuali DEBUG didefinisikan sebagai simbol kompilasi bersyarat. Lihat dokumentasi pengkompilasi untuk menentukan apakah ConditionalAttribute didukung dan sintaks untuk menentukan simbol kompilasi bersyar.

Catatan

Dalam proyek Visual Studio C# dan Visual Basic, secara default, DEBUG simbol kompilasi kondisional didefinisikan untuk build debug, dan TRACE simbol didefinisikan untuk build debug dan rilis. Untuk informasi tentang penelusuran kesalahan kondisional di Visual C++, lihat Kelas debug (C++/CLI).

Untuk menentukan DEBUG simbol kompilasi bersyar di C#, tambahkan /d:DEBUG opsi ke baris perintah pengkompilasi saat Anda mengkompilasi kode menggunakan baris perintah, atau tambahkan #define DEBUG ke bagian atas file Anda. Di Visual Basic, tambahkan /d:DEBUG=True opsi ke baris perintah pengkompilasi atau tambahkan #Const DEBUG=True ke file.

Properti

AutoFlush

Mendapatkan atau menetapkan nilai yang menunjukkan apakah Flush() harus dipanggil setelah Listeners setiap penulisan.

IndentLevel

Mendapatkan atau mengatur tingkat inden.

IndentSize

Mendapatkan atau mengatur jumlah spasi dalam inden.

Listeners

Mendapatkan kumpulan listener yang memantau output debug.

Metode

Assert(Boolean)

Memeriksa kondisi; jika kondisinya , falsemenampilkan kotak pesan yang memperlihatkan tumpukan panggilan.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Memeriksa kondisi; jika kondisinya , falsemenghasilkan pesan tertentu dan menampilkan kotak pesan yang memperlihatkan tumpukan panggilan.

Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler)

Memeriksa kondisi; jika kondisinya , falsemenghasilkan pesan tertentu dan menampilkan kotak pesan yang memperlihatkan tumpukan panggilan.

Assert(Boolean, String)

Memeriksa kondisi; jika kondisinya , falsemenghasilkan pesan tertentu dan menampilkan kotak pesan yang memperlihatkan tumpukan panggilan.

Assert(Boolean, String, String)

Memeriksa kondisi; jika kondisinya adalah false, menghasilkan dua pesan yang ditentukan dan menampilkan kotak pesan yang memperlihatkan tumpukan panggilan.

Assert(Boolean, String, String, Object[])

Memeriksa kondisi; jika kondisinya , falsemenghasilkan dua pesan (sederhana dan diformat) dan menampilkan kotak pesan yang memperlihatkan tumpukan panggilan.

Close()

Bersihkan buffer output dan kemudian memanggil Close metode pada masing-masing Listeners.

Fail(String)

Memancarkan pesan kesalahan yang ditentukan.

Fail(String, String)

Memancarkan pesan kesalahan dan pesan kesalahan terperinci.

Flush()

Menghapus buffer output dan menyebabkan data yang di-buffer menulis ke Listeners koleksi.

Indent()

Meningkatkan arus IndentLevel satu per satu.

Print(String)

Menulis pesan diikuti dengan terminator baris ke pendengar jejak dalam Listeners koleksi.

Print(String, Object[])

Menulis string yang diformat diikuti oleh terminator baris ke pendengar jejak dalam Listeners koleksi.

Unindent()

Mengurangi saat ini IndentLevel satu per satu.

Write(Object)

Menulis nilai metode objek ToString() ke pendengar jejak dalam Listeners koleksi.

Write(Object, String)

Menulis nama kategori dan nilai metode objek ToString() ke pendengar jejak dalam Listeners koleksi.

Write(String)

Menulis pesan ke pendengar jejak dalam Listeners koleksi.

Write(String, String)

Menulis nama kategori dan pesan ke pendengar jejak dalam Listeners koleksi.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Jika condition adalah true, menulis nama kategori dan pesan ke pendengar jejak dalam Listeners koleksi.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Menulis nama kategori dan pesan ke pendengar jejak dalam Listeners koleksi jika kondisi yang ditentukan adalah true.

WriteIf(Boolean, Object)

Menulis nilai metode objek ToString() ke pendengar jejak dalam Listeners koleksi jika kondisinya adalah true.

WriteIf(Boolean, Object, String)

Menulis nama kategori dan nilai metode objek ToString() ke pendengar jejak dalam Listeners koleksi jika kondisinya adalah true.

WriteIf(Boolean, String)

Menulis pesan ke pendengar jejak dalam Listeners koleksi jika kondisinya adalah true.

WriteIf(Boolean, String, String)

Menulis nama kategori dan pesan ke pendengar jejak dalam Listeners koleksi jika kondisinya adalah true.

WriteLine(Object)

Menulis nilai metode objek ToString() ke pendengar jejak dalam Listeners koleksi.

WriteLine(Object, String)

Menulis nama kategori dan nilai metode objek ToString() ke pendengar jejak dalam Listeners koleksi.

WriteLine(String)

Menulis pesan diikuti dengan terminator baris ke pendengar jejak dalam Listeners koleksi.

WriteLine(String, Object[])

Menulis pesan yang diformat diikuti dengan terminator baris ke pendengar jejak dalam Listeners koleksi.

WriteLine(String, String)

Menulis nama kategori dan pesan ke pendengar jejak dalam Listeners koleksi.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Menulis pesan ke pendengar jejak dalam Listeners koleksi jika kondisi yang ditentukan adalah true.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Menulis nama kategori dan pesan ke pendengar jejak dalam Listeners koleksi jika kondisi yang ditentukan adalah true.

WriteLineIf(Boolean, Object)

Menulis nilai metode objek ToString() ke pendengar jejak dalam Listeners koleksi jika kondisinya adalah true.

WriteLineIf(Boolean, Object, String)

Menulis nama kategori dan nilai metode objek ToString() ke pendengar jejak dalam Listeners koleksi jika kondisinya adalah true.

WriteLineIf(Boolean, String)

Menulis pesan ke pendengar jejak dalam Listeners koleksi jika kondisinya adalah true.

WriteLineIf(Boolean, String, String)

Menulis nama kategori dan pesan ke pendengar jejak dalam Listeners koleksi jika kondisinya adalah true.

Berlaku untuk

Keamanan Thread

Jenis ini aman untuk utas.

Lihat juga