Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Hanya-In-Time penelusuran kesalahan dapat meluncurkan Visual Studio secara otomatis saat aplikasi yang berjalan di luar kesalahan Visual Studio atau crash. Dengan penelusuran kesalahan Just-In-Time, Anda dapat menguji aplikasi di luar Visual Studio, dan membuka Visual Studio untuk mulai men-debug saat masalah terjadi.
Just-In-Time debugging berfungsi untuk aplikasi desktop Windows. Ini tidak berfungsi untuk Universal Windows Apps, atau untuk kode terkelola yang dihosting dalam aplikasi asli, seperti Visualizer.
Tips
Jika Anda hanya ingin mencegah kotak dialog Just-In-Time Debugger dari muncul, tetapi tidak menginstal Visual Studio, lihat Nonaktifkan Just-In-Time Debugger. Jika Anda pernah menginstal Visual Studio, Anda mungkin perlu menonaktifkan Debugging Just-In-Time dari registri Windows.
Mengaktifkan atau menonaktifkan debug Just-In-Time di Visual Studio
Saat Anda bekerja dengan debugger Just-In-Time di Visual Studio, opsi konfigurasi untuk debugger dapat diakses dari menuOpsi> atauOpsi>. Debugger Just-In-Time tersedia di bagian komponen Individual>Debugging dan pengujian dari alat penginstal.
Nota
Untuk mengaktifkan atau menonaktifkan penelusuran kesalahan Just-In-Time, Anda harus menjalankan Visual Studio sebagai administrator. Mengaktifkan atau menonaktifkan Just-In-Time debugging mengatur kunci registri, dan hak istimewa administrator mungkin diperlukan untuk mengubah kunci. Untuk membuka Visual Studio sebagai administrator, klik kanan aplikasi Visual Studio dan pilih Jalankan sebagai administrator.
Untuk mengaktifkan atau menonaktifkan penelusuran kesalahan Just-In-Time:
Di panelOpsi>, perluas bagianUmum>>.
Di panel kanan, pilih tautan Konfigurasikan Debugging Just-In-Time.
Dalam dialog Opsi Debugger Visual Studio , konfigurasikan opsi Aktifkan Just-In-Time debugging untuk jenis kode ini . Pilih jenis kode yang Anda inginkan untuk debug Just-In-Time: Managed (.NET Framework) atau Native.
Pilih OK.
Dalam dialogOpsi>, perluas bagian Debugging>Just-In-Time.
Dalam kotak Aktifkan debug Just-In-Time untuk jenis kode ini, pilih jenis kode yang Anda inginkan untuk debug Just-In-Time: Terkelola, Asli , dan/atau Skrip.
Pilih OK.
Jika Anda mengaktifkan debugger Just-In-Time, tetapi tidak terbuka saat aplikasi mengalami crash atau kesalahan, lihat Memecahkan MasalahIn-Time.
Nonaktifkan debugging Just-In-Time dari registri Windows
Hanya- debuggingIn-Time mungkin masih diaktifkan meskipun Visual Studio tidak lagi diinstal di komputer Anda. Jika Visual Studio tidak lagi diinstal, Anda dapat menonaktifkan penelusuran kesalahan Just-In-Time dengan mengedit registri Windows.
Untuk menonaktifkan penelusuran kesalahan Just-In-Time dengan mengedit registri:
Dari menu Mulai Windows, jalankan Editor Registri (regedit.exe).
Di jendela Editor Registri, temukan dan hapus entri registri berikut jika ada:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
JIT registry key
JIT registry keykunci registri JIT
Hapus juga entri registri berikut jika ada:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger
Pastikan untuk tidak menghapus atau mengubah kunci registri lainnya.
Tutup jendela Editor Registri.
Mengaktifkan debugging Just-In-Time untuk Windows Forms
Secara default, aplikasi Formulir Windows memiliki handler pengecualian tingkat atas yang memungkinkan aplikasi terus berjalan jika dapat pulih. Jika aplikasi Windows Forms melemparkan pengecualian yang tidak tertangani, aplikasi tersebut akan menampilkan dialog berikut:
Untuk mengaktifkan debugging Just-In-Time daripada penanganan kesalahan standar Formulir Windows, tambahkan pengaturan ini:
Di bagian
system.windows.formsfile.exe.config<>, atur nilai kejitDebugging:<configuration> <system.windows.forms jitDebugging="true" /> </configuration>Dalam aplikasi Formulir Windows C++, atur juga
DebuggableAttributeketruedalam file .config atau dalam kode Anda. Jika Anda mengkompilasi dengan /Zi dan tanpa /Og, pengkompilasi mengatur atribut ini untuk Anda. Namun, jika Anda ingin men-debug build rilis yang tidak optimal, Anda harus mengaturDebuggableAttributedengan menambahkan baris berikut di file AssemblyInfo.cpp aplikasi Anda:[assembly:System::Diagnostics::DebuggableAttribute(true, true)];Untuk informasi selengkapnya, lihat DebuggableAttribute.
Gunakan debugging Just-In-Time
Contoh ini memandu Anda melalui proses debug Just-In-Time ketika aplikasi menghadapi kesalahan.
Anda harus menginstal Visual Studio untuk mengikuti langkah-langkah ini. Jika Anda tidak memiliki Visual Studio, Anda dapat mengunduh Visual Studio Community Edition gratis.
Pastikan penelusuran kesalahan Just-In-Time diaktifkan dengan mengonfigurasi Opsi Aktifkan Just-In-Time untuk jenis kode ini di bawahOpsi>.
Untuk contoh ini, Anda membuat aplikasi konsol C# di Visual Studio yang melempar NullReferenceException.
Di Visual Studio, buat aplikasi konsol C# (File>New>Project>Visual C#>Console Application) bernama ThrowsNullException. Untuk informasi selengkapnya tentang membuat proyek di Visual Studio, lihat panduan : Membuat aplikasi sederhana.
Saat proyek terbuka di Visual Studio, buka file Program.cs. Ganti metode Main() dengan kode berikut, yang mencetak baris ke konsol lalu melempar NullReferenceException:
static void Main(string[] args) { Console.WriteLine("we will now throw a NullReferenceException"); throw new NullReferenceException("this is the exception thrown by the console app"); }Untuk membangun solusi, pilih konfigurasi Debug (default) atau Release, lalu pilih Build>Rebuild Solution.
Untuk pengalaman debugging yang lengkap, pilih konfigurasi Debug.
Jika Anda memilih konfigurasi Rilis , Anda harus menonaktifkan Just My Code agar prosedur ini berfungsi.
Di panelOpsi>, perluas bagianUmum>>, dan kosongkan kotak centang Aktifkan Hanya Kode Saya.
Dalam dialog
Alat Opsi , perluas bagianPenelusuran Kesalahan Umum , dan kosongkan kotak centangAktifkan Hanya Kode Saya .Saat Anda mende-selektasi opsi ini, opsi Peringatkan jika tidak ada kode pengguna saat memulai penelusuran kesalahan (khusus untuk yang dikelola) secara otomatis dinonaktifkan.
Untuk informasi selengkapnya tentang konfigurasi build, lihat Memahami konfigurasi build.
Buka ThrowsNullException.exe aplikasi bawaan di folder proyek C# Anda (...\ThrowsNullException\ThrowsNullException\bin\Debug atau ...\ThrowsNullException\ThrowsNullException\bin\Release).
Anda akan melihat jendela perintah berikut:
Dialog Pilih Hanya-In-Time Debugger terbuka.
Di bawah Debugger yang Tersedia, pilih Instance baru <dari versi/edisi Visual Studio pilihan Anda>, jika belum dipilih.
Pilih OK.
Proyek ThrowsNullException terbuka dalam instans baru Visual Studio, dengan eksekusi berhenti di baris yang melemparkan pengecualian:
Anda dapat mulai debugging pada saat ini. Jika Anda men-debug aplikasi nyata, Anda perlu mencari tahu mengapa kode melemparkan pengecualian.
Peringatan
Jika aplikasi Anda berisi kode yang tidak tepercaya, kotak dialog peringatan keamanan akan muncul, memberi Anda opsi untuk memutuskan apakah ingin melanjutkan penelusuran kesalahan. Sebelum melanjutkan debugging, putuskan apakah Anda mempercayai kode tersebut. Apakah Anda menulis kode sendiri? Jika aplikasi berjalan pada komputer jarak jauh, apakah Anda mengenali nama prosesnya? Jika aplikasi berjalan secara lokal, pertimbangkan kemungkinan kode berbahaya yang berjalan di komputer Anda. Jika Anda memutuskan kode dapat dipercaya, pilih OK. Jika tidak, pilih Batalkan.
Memecahkan masalah debugging Just-In-Time
Just-In-Time debugging gagal dimulai
Jika debugging Just-In-Time tidak dimulai saat aplikasi mengalami crash, meskipun diaktifkan di Visual Studio:
Masalah Windows yang diketahui mungkin menyebabkan debugger Just-In-Time gagal.
Perbaikannya adalah menambahkan Nilai DWORDOtomatis , dengan data Nilai1, ke kunci registri berikut:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
(Untuk aplikasi 32-bit pada komputer 64-bit) HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug
Pelaporan Galat Windows mungkin sedang mengambil alih penanganan galat pada komputer Anda.
Untuk memperbaiki masalah ini, gunakan Editor Registri untuk menambahkan Nilai DWORD dari Dinonaktifkan, dengan data Nilai dari 1, ke kunci registri berikut:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting
(Untuk aplikasi 32-bit pada komputer 64-bit) HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\Windows Error Reporting
Untuk informasi lebih lanjut, lihat pengaturan WER di dan.
Pesan kesalahan
Anda mungkin melihat pesan kesalahan berikut selama debugging Just-In-Time:
Tidak dapat mengakses proses yang mengalami crash. Program yang ditentukan bukan program Windows atau MS-DOS.
Debugger coba mengaitkan ke proses yang berjalan di bawah pengguna lain.
Untuk mengatasi masalah ini, di Visual Studio, buka Debug>Lampirkan ke Proses (atau tekan Ctrl + Alt + P), dan temukan proses yang ingin Anda debug dalam daftar Proses Tersedia. Jika Anda tidak mengetahui nama proses, temukan ID Proses di dialog Visual Studio Just-In-Time Debugger. Pilih proses dalam daftar Proses Tersedia, dan pilih Lampirkan. Pilih Tidak untuk menutup dialog Debugger Just-In-Time.
Debugger tidak dapat dimulai karena tidak ada pengguna yang masuk.
Tidak ada pengguna yang masuk ke konsol, sehingga tidak ada sesi pengguna untuk menampilkan Just-In-Time debugging dialog.
Untuk memperbaiki masalah ini, masuk ke komputer.
kelas tidak terdaftar.
Debugger mencoba membuat kelas COM yang tidak terdaftar, mungkin karena masalah penginstalan.
Untuk memperbaiki masalah ini, gunakan Alat Penginstal Visual Studio untuk menginstal ulang atau memperbaiki penginstalan Visual Studio Anda.
Debugger lain telah mendaftarkan dirinya sebagai debugger Just-In-Time. Untuk memperbaiki, aktifkan Debugging Just-In-Time atau jalankan perbaikan Visual Studio.
Pesan ini muncul jika Anda memiliki debugger lain, mungkin versi debugger Visual Studio yang lebih lama, yang diatur sebagai debugger Just-In-Time.
Kesalahan pendaftaran debugging Just-In-Time terdeteksi. Untuk memperbaiki, aktifkan Debugging Just-In-Time atau jalankan perbaikan Visual Studio.
Jika Anda melihat salah satu peringatan ini, Penelusuran kesalahan Just-In-Time dengan Visual Studio memerlukan hak akses Administrator hingga Anda mengatasi masalah tersebut. Jika Anda mencoba mengaktifkan fitur sebagai non-administrator dalam kondisi ini, Anda akan melihat pesan kesalahan berikut:
Akses ditolak. Minta administrator mengaktifkan penelusuran kesalahan Just-In-Time, atau memperbaiki penginstalan Visual Studio Anda.