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 penelusuran kesalahan Just-In-Time dari registri Windows.
Mengaktifkan atau menonaktifkan debug Just-In-Time di Visual Studio
Anda dapat mengonfigurasi debugging Just-In-Time dari kotak dialog Opsi Alat > (atau Opsi Debug >).
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 tersebut. 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:
Pada menu Alat atau Debug, pilih Opsi >Penelusuran Kesalahan>Just-In-Time .
Nota
Jika opsi menu Just-In-Time tidak ditampilkan, pastikan debugger Just-In-Time diinstal menggunakan Alat Penginstal Visual Studio.
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
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.forms
file>.exe.confignama aplikasi machine.config atau<, atur nilaijitDebugging
ketrue
:<configuration> <system.windows.forms jitDebugging="true" /> </configuration>
Dalam aplikasi Formulir Windows C++, atur juga
DebuggableAttribute
ketrue
dalam 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 mengaturDebuggableAttribute
dengan 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 di Alat Opsi>Debugging>Just-In-Time>.
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.
Nota
- Pilih konfigurasi debug untuk pengalaman debugging penuh.
- Jika Anda memilih konfigurasi Release, Anda harus menonaktifkan Just My Code agar prosedur ini berfungsi. Di bawah Tools>Options>Debugging, hapus centang pada Aktifkan Just My Code.
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
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.
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.
Konten terkait
- Keamanan Debugger
- Pertama-tama lihatlah debugger
- Opsi, Penelusuran Kesalahan, Kotak dialog Just-In-Time
- Peringatan Keamanan: Mengaitkan dengan proses yang dimiliki oleh pengguna yang tidak terpercaya bisa berbahaya. Jika informasi berikut terlihat mencurigakan atau Anda tidak yakin, jangan lampirkan ke proses ini