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.
Visual Studio dapat men-debug solusi yang memiliki beberapa proses. Anda dapat memulai dan beralih antar proses, menghentikan sementara, melanjutkan, dan melakukan langkah-langkah melalui kode sumber, menghentikan debugging, dan mengakhiri atau memisahkan dari proses-proses tertentu.
Mulai debug dengan beberapa proses
Ketika lebih dari satu proyek dalam solusi Visual Studio dapat berjalan secara independen, Anda dapat memilih proyek mana yang dimulai oleh debugger. Proyek startup saat ini muncul dalam huruf tebal di Penjelajah Solusi.
Untuk mengubah proyek startup, di Penjelajah Solusi, klik kanan proyek lain dan pilih Atur sebagai Proyek StartUp.
Untuk mulai men-debug proyek dari Penjelajah Solusi tanpa menjadikannya proyek startup, klik kanan proyek dan pilih Debug>Mulai instans baru atau Masuk ke instans baru.
Untuk mengatur proyek startup atau beberapa proyek dari Properti Solusi:
Pilih solusi di Penjelajah Solusi lalu pilih ikon Properti di toolbar, atau klik kanan solusi dan pilih Properti.
Pada halaman Properti, pilih Properti Umum>Proyek Startup.
Pilih Pilihan saat ini, Proyek startup tunggal dan file proyek, atau Beberapa proyek startup.
Jika Anda memilih Beberapa proyek startup, Anda dapat mengubah urutan dan tindakan startup yang akan diambil untuk setiap proyek: Mulai, Mulai tanpa penelusuran kesalahan, atau Tidak Ada.
Pilih Terapkan, atau OK untuk menerapkan dan menutup dialog.
Mengaitkan ke proses
Debugger juga dapat melampirkan ke aplikasi yang berjalan dalam proses di luar Visual Studio, termasuk di perangkat jarak jauh. Setelah melampirkan ke aplikasi, Anda dapat menggunakan debugger Visual Studio. Fitur debug mungkin terbatas. Ini tergantung pada apakah aplikasi dibangun dengan informasi debug, apakah Anda memiliki akses ke kode sumber aplikasi, dan apakah pengkompilasi JIT melacak informasi debug.
Untuk informasi selengkapnya, lihat Melampirkan ke proses yang sedang berjalan.
Untuk melampirkan ke proses yang sedang berjalan:
Dengan aplikasi berjalan, pilih Debug>Hubungkan ke Proses.
Dalam kotak dialog Lampirkan ke Proses , pilih proses dari daftar Proses yang Tersedia , lalu pilih Lampirkan.
Nota
Debugger tidak secara otomatis terhubung ke proses anak yang dimulai oleh proses yang sedang didebug, meskipun proyek anak berada dalam solusi yang sama. Untuk melakukan debug proses anak, Anda dapat menghubungkan ke proses anak setelah dimulai, atau dengan mengonfigurasi Editor Registri Windows untuk memulai proses anak dalam instance debugger baru.
Gunakan Editor Registri untuk memulai proses secara otomatis di debugger
Terkadang, Anda mungkin perlu men-debug kode startup untuk aplikasi yang diluncurkan oleh proses lain. Contohnya termasuk layanan dan tindakan penyiapan kustom. Anda dapat meluncurkan debugger dan secara otomatis melampirkan ke aplikasi.
Mulai Editor Registri Windows dengan menjalankan regedit.exe.
Di Editor Registri, navigasikan ke HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.
Pilih folder aplikasi yang ingin Anda mulai di debugger.
Jika aplikasi tidak terdaftar sebagai folder anak, klik kanan Opsi Eksekusi File Gambar, pilihKunci>, dan ketik nama aplikasi. Atau, klik kanan kunci baru di pohon, pilih Ganti Nama, lalu masukkan nama aplikasi.
Klik kanan kunci baru di pohon dan pilih Baru>Nilai String.
Ubah nama nilai baru dari Nilai Baru #1 menjadi
debugger.Klik kanan debugger dan pilih Ubah.
Dalam kotak dialog Edit String , ketik
vsjitdebugger.exedalam kotak Data nilai , lalu pilih OK.
Debug dengan beberapa proses
Saat men-debug aplikasi dengan beberapa proses, perintah pemberhentian, lanjutan langkah demi langkah, dan penerusan debugger memengaruhi semua proses secara default. Misalnya, ketika proses ditangguhkan pada titik henti, eksekusi semua proses lainnya juga ditangguhkan. Anda dapat mengubah perilaku default ini, untuk mendapatkan kontrol lebih besar atas target perintah eksekusi.
Untuk mengubah apakah semua proses ditangguhkan ketika satu proses berhenti:
- Di panel OpsiAlat (atau >) , perluas bagianUmum>>.
- Dalam dialog OpsiAlat (atau >), perluas bagianUmum>.
- Pilih atau kosongkan kotak centang opsi Hentikan semua proses ketika satu proses berhenti.
Perintah Break, Langkah, Continue
Tabel berikut ini menjelaskan perilaku perintah debugging saat kotak centang Hentian semua proses saat satu proses diputuskan dipilih atau tidak:
| Perintah | Dipilih | Tidak dipilih |
|---|---|---|
| Debug>Hentikan Semua | Semua proses terhenti. | Semua proses berhenti. |
| Debug>Lanjut | Semua proses dilanjutkan. | Semua proses yang ditangguhkan dilanjutkan. |
| Debug>Langkah Ke Dalam, Langkah Lewati, atau Langkah Keluar | Semua proses berjalan saat langkah-langkah proses saat ini. Kemudian semua proses berhenti. |
Langkah-langkah proses saat ini. Proses yang ditangguhkan dilanjutkan. Proses yang sedang berjalan berlanjut. |
| Debug>Masuk ke Proses Saat Ini, Langkahi Proses Saat Ini, atau Keluar dari Proses Saat Ini | N/A | Langkah-langkah proses saat ini. Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan). |
| Titik Henti jendela sumber | Semua proses rusak. | Hanya proses jendela sumber berhenti. |
| Jendela sumber kode Jalankan ke kursor Jendela sumber harus berada dalam proses yang sedang berjalan. |
Semua proses dijalankan sementara proses jendela sumber berjalan hingga mencapai kursor, kemudian terhenti. Kemudian semua proses lainnya rusak. |
Proses jendela sumber berjalan menuju kursor. Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan). |
| Jendela Proses>Hentikan Proses | N/A | Gangguan proses yang dipilih. Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan). |
| Proses jendela >Lanjutkan Proses | N/A | Proses yang dipilih dilanjutkan. Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan). |
Menemukan file sumber dan simbol (.pdb)
Untuk menavigasi kode sumber proses, debugger memerlukan akses ke file sumber dan file simbolnya. Untuk informasi selengkapnya, lihat Menentukan simbol (.pdb) dan file sumber.
Jika Anda tidak dapat mengakses file untuk proses, Anda dapat menavigasi dengan menggunakan jendela Disassembly. Untuk informasi selengkapnya, lihat Cara: Menggunakan jendela Pembongkaran.
Beralih antar proses
Anda dapat melampirkan ke beberapa proses saat melakukan debugging, tetapi hanya satu proses yang aktif di debugger pada waktu tertentu. Anda dapat mengatur proses aktif atau saat ini di toolbar Lokasi Debug , atau di jendela Proses . Untuk beralih antar proses, kedua proses harus dalam mode jeda.
Untuk mengatur proses saat ini dari toolbar Lokasi Debug:
Untuk membuka toolbar Lokasi Debug, pilih Tampilkan>Lokasi Debug>.
Selama penelusuran kesalahan, pada toolbar Lokasi Debug, pilih proses yang ingin Anda jadikan proses saat ini dari menu drop-down Proses.
Untuk mengatur proses saat ini dari jendela Proses:
Untuk membuka jendela Proses, saat debugging, pilih Debug>Windows>Proses.
Di jendela Proses , proses saat ini ditandai dengan panah kuning. Klik dua kali proses yang ingin Anda atur sebagai proses saat ini.
Beralih ke proses menjadikannya sebagai proses saat ini untuk tujuan penelusuran kesalahan. Jendela debugger memperlihatkan status untuk proses saat ini, dan perintah langkah hanya memengaruhi proses saat ini.
Berhenti debug dengan banyak proses
Secara default, saat Anda memilih Debug>Hentikan Debugging, debugger akan berakhir atau terlepas dari semua proses.
Jika proses saat ini diluncurkan di debugger, prosesnya akan berakhir.
Jika Anda melampirkan debugger ke proses saat ini, debugger akan melepaskan diri dari proses tersebut dan membiarkannya terus berjalan.
Jika Anda mulai men-debug proses dari solusi Visual Studio, lampirkan ke proses lain yang sudah berjalan, lalu pilih Hentikan Penelusuran Kesalahan, sesi penelusuran kesalahan berakhir. Proses yang dimulai di Visual Studio telah selesai, sedangkan proses yang Anda kaitkan masih terus berjalan.
Untuk mengatur bagaimana Menghentikan Penelusuran Kesalahan mempengaruhi proses individual, di jendela Proses, klik kanan pada proses, lalu pilih atau hilangkan tanda pada kotak centang Lepas saat penelusuran kesalahan dihentikan.
Nota
Opsi Putuskan semua proses saat satu proses terhenti debugger tidak memengaruhi pemberhentian, pengakhiran, atau pelepasan proses.
Berhenti, akhiri, dan lepaskan perintah
Tabel berikut ini menjelaskan perilaku perintah hentikan, akhiri, dan lepaskan debugger dengan beberapa proses:
| Perintah | Deskripsi |
|---|---|
| Debug>Hentikan Debugging | Kecuali perilaku diubah di jendela Proses , proses yang dimulai oleh debugger berakhir, dan proses terlampir dilepaskan. |
| Debug>Hentikan Semua | Semua proses berakhir. |
| Debug>Lepaskan Semua | Debugger mencopot dari semua proses. |
| Proses Jendela >Lepaskan Proses | Debugger dilepaskan dari proses yang dipilih. Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan). |
| Proses Jendela >Menghentikan Proses | Proses yang dipilih telah diakhiri. Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan). |
| Jendela Proses>Terputus saat debugging berhenti | Jika dipilih, Debug>Berhenti Debugging memisahkan dari proses yang dipilih. Jika tidak dipilih, Debug>Berhenti Debugging mengakhiri proses yang dipilih. |