DebuggableAttribute.DebuggingModes Enum

Definisi

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
DebuggableAttribute.DebuggingModes
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 false. Namun, karena pelacakan JIT selalu diaktifkan, nilai properti diabaikan di versi 2.0 atau yang lebih baru.

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.

Berlaku untuk