DebuggableAttribute.DebuggingModes Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan mode penelusuran kesalahan untuk pengkompilasi just-in-time (JIT).
Enumerasi ini mendukung kombinasi bitwise dari nilai yang termasuk di dalamnya.
public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes =
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes =
Public Enum DebuggableAttribute.DebuggingModes
- Warisan
- Atribut
Bidang
Default | 1 | Menginstruksikan pengkompilasi just-in-time (JIT) untuk menggunakan perilaku defaultnya, yang mencakup mengaktifkan pengoptimalan, menonaktifkan dukungan Edit dan Lanjutkan, dan menggunakan titik urutan penyimpanan simbol jika ada. Dimulai dengan .NET Framework versi 2.0, informasi pelacakan JIT, offset bahasa perantara Microsoft (MSIL) ke offset kode asli dalam metode, selalu dihasilkan. |
DisableOptimizations | 256 | Nonaktifkan pengoptimalan yang dilakukan oleh pengkompilasi untuk membuat file output Anda lebih kecil, lebih cepat, dan lebih efisien. Pengoptimalan menghasilkan pengaturan ulang kode dalam file output, yang dapat menyulitkan penelusuran kesalahan. Biasanya pengoptimalan harus dinonaktifkan saat penelusuran kesalahan. Di versi 2.0 atau yang lebih baru, gabungkan nilai ini dengan Default (Default | DisableOptimizations) untuk mengaktifkan pelacakan JIT dan menonaktifkan pengoptimalan. |
EnableEditAndContinue | 4 | Aktifkan edit dan lanjutkan. Edit dan lanjutkan memungkinkan Anda membuat perubahan pada kode sumber saat program Anda dalam mode jeda. Kemampuan untuk mengedit dan melanjutkan tergantung pada kompilator. |
IgnoreSymbolStoreSequencePoints | 2 | Gunakan titik urutan MSIL implisit, bukan titik urutan database program (PDB). Informasi simbolis biasanya mencakup setidaknya satu offset bahasa perantara Microsoft (MSIL) untuk setiap baris sumber. Ketika pengkompilasi just-in-time (JIT) akan mengkompilasi metode, ia meminta layanan pembuatan profil untuk daftar offset MSIL yang harus dipertahankan. Offset MSIL ini disebut titik urutan. |
None | 0 | Dimulai dengan .NET Framework versi 2.0, informasi pelacakan JIT selalu dihasilkan, dan bendera ini memiliki efek yang sama dengan Default, kecuali bahwa ia mengatur IsJITTrackingEnabled properti ke Perhatikan bahwa, tidak seperti DisableOptimizations bendera , None bendera tidak dapat digunakan untuk menonaktifkan pengoptimalan JIT. |
Keterangan
DebuggableAttribute.DebuggingModes Enumerasi menentukan bagaimana runtime adalah melacak informasi penting bagi debugger selama pembuatan kode. Informasi ini membantu debugger memberikan pengalaman penelusuran kesalahan yang kaya. Tidak seperti .NET Framework versi 1.1, versi 2.0 atau yang lebih baru tidak memungkinkan Anda menonaktifkan pelacakan oleh pengkompilasi just-in-time (JIT). Pelacakan JIT selalu diaktifkan untuk file yang dapat di-debug. Di versi 2.0 dan yang lebih baru, nilai enumerasi memiliki efek berikut.
Mode penelusuran kesalahan | Hasil |
---|---|
Tidak ada | Pelacakan aktif, pengoptimalan JIT diaktifkan |
Default | Pelacakan aktif, pengoptimalan JIT diaktifkan |
DisableOptimizations | Pelacakan aktif, pengoptimalan JIT diaktifkan |
Default | DisableOptimizations | Pelacakan aktif, pengoptimalan JIT dinonaktifkan |
Titik urutan digunakan untuk menunjukkan lokasi dalam kode bahasa perantara Microsoft (MSIL) yang diharapkan pengguna debugger dapat merujuk secara unik, seperti untuk mengatur titik henti. Pengkompilasi JIT memastikan tidak mengkompilasi MSIL pada dua titik urutan yang berbeda menjadi satu instruksi asli. Secara default, pengkompilasi JIT memeriksa penyimpanan simbol dalam file database program (PDB) untuk daftar titik urutan tambahan. Namun, memuat file PDB mengharuskan file tersedia dan memiliki dampak performa negatif. Dimulai dengan versi 2.0, pengkompilasi dapat memancarkan "titik urutan implisit" dalam aliran kode MSIL melalui penggunaan instruksi MSIL "nop"
. Pengkompilasi tersebut IgnoreSymbolStoreSequencePoints
harus mengatur bendera untuk memberi tahu runtime bahasa umum agar tidak memuat file PDB.
Catatan
Enumerasi ini terutama digunakan oleh pengembang bahasa. Ini umumnya tidak digunakan dalam pengembangan aplikasi. Lingkungan pengembangan digunakan DebuggableAttribute.DebuggingModes berdasarkan parameter pengkompilasi seperti /debug dan /optimize.