Bagikan melalui


Men-debug beberapa proses (C#, Visual Basic, C++)

Visual Studio dapat men-debug solusi yang memiliki beberapa proses. Anda dapat memulai dan beralih di antara proses, memutuskan, melanjutkan, dan menelusuri sumber, menghentikan penelusuran kesalahan, dan mengakhiri atau mencopot masing-masing proses.

Memulai penelusuran kesalahan 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 memulai penelusuran kesalahan 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:

  1. Pilih solusi di Penjelajah Solusi lalu pilih ikon Properti di toolbar, atau klik kanan solusi dan pilih Properti.

  2. Pada halaman Properti, pilih Properti Umum>Proyek Startup.

    Changing the startup type for a project

  3. Pilih Pilihan saat ini, Proyek startup tunggal dan file proyek, atau Beberapa proyek startup.

    Jika Anda memilih Beberapa proyek startup, Anda dapat mengubah urutan startup dan tindakan yang harus diambil untuk setiap proyek: Mulai, Mulai tanpa penelusuran kesalahan, atau Tidak ada.

  4. Pilih Terapkan, atau OK untuk menerapkan dan menutup dialog.

Melampirkan ke proses

Debugger juga dapat melampirkan ke aplikasi yang berjalan dalam proses di luar Visual Studio, termasuk pada perangkat jarak jauh. Setelah Anda melampirkan ke aplikasi, Anda dapat menggunakan debugger Visual Studio. Fitur penelusuran kesalahan mungkin terbatas. Ini tergantung pada apakah aplikasi dibuat dengan informasi debug, apakah Anda memiliki akses ke kode sumber aplikasi, dan apakah kompilator JIT melacak informasi debug.

Untuk informasi selengkapnya, lihat Melampirkan ke proses yang sedang berjalan.

Untuk melampirkan ke proses yang sedang berjalan:

  1. Dengan aplikasi berjalan, pilih Debug>Lampirkan ke Proses.

    Attach to Process dialog box

  2. Dalam kotak dialog Lampirkan ke Proses, pilih proses dari daftar Proses yang Tersedia, lalu pilih Lampirkan.

Catatan

Debugger tidak secara otomatis melampirkan ke proses turunan yang dimulai oleh proses yang di-debug, bahkan jika proyek turunan dalam solusi yang sama. Untuk men-debug proses turunan, lampirkan ke proses turunan setelah dimulai, atau konfigurasikan Editor Registri Windows untuk memulai proses turunan dalam instans debugger baru.

Menggunakan 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 memiliki peluncuran debugger dan secara otomatis melampirkan ke aplikasi.

  1. Mulai Editor Registri Windows dengan menjalankan regedit.exe.

  2. Di Editor Registri, buka HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.

  3. Pilih folder aplikasi yang ingin Anda mulai di debugger.

    Jika aplikasi tidak terdaftar sebagai folder turunan, klik kanan Opsi Eksekusi File Gambar, pilih Baru>Kunci, dan ketik nama aplikasi. Atau, klik kanan kunci baru di pohon, pilih Ganti Nama, lalu masukkan nama aplikasi.

  4. Klik kanan kunci baru di pohon dan pilih Baru>Nilai String.

  5. Ubah nama nilai baru dari Nilai Baru #1 menjadi debugger.

  6. Klik kanan debugger dan pilih Ubah.

    Edit String dialog box

  7. Dalam kotak dialog Edit String, ketik vsjitdebugger.exe di kotak Data nilai, lalu pilih OK.

    Automatic debugger start entry in regedit.exe

Men-debug dengan beberapa proses

Saat men-debug aplikasi dengan beberapa proses, perintah debugger yang memutus, melangkah, dan melanjutkan memengaruhi semua proses secara default. Misalnya, ketika suatu proses ditangguhkan di titik henti, eksekusi dari 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 saat satu proses putus:

  • Di bagian Alat (atau Debug) >Opsi>Penelusuran Kesalahan>Umum, pilih atau kosongkan kotak centang Putuskan semua proses saat satu proses putus.

Perintah putuskan, langkah, dan lanjutkan

Tabel berikut menjelaskan perilaku perintah debug saat kotak centang Putuskan semua proses saat satu proses putus dipilih atau tidak dipilih:

Perintah Dipilih Tidak dipilih
Debug>Putuskan Semua Semua proses putus. Semua proses putus.
Debug>Lanjutkan Semua proses dilanjutkan. Semua proses yang ditangguhkan dilanjutkan.
Debug>Masuk, Melangkahi, atau Keluar Semua proses berjalan saat proses saat ini berjalan.
Kemudian semua proses putus.
Langkah-langkah proses saat ini.
Proses yang ditangguhkan dilanjutkan.
Proses yang berjalan terus berlanjut.
Debug>Masuk ke Proses Saat Ini, Melangkahi Proses Saat Ini, atau Keluar dari Proses Saat Ini T/A Langkah-langkah proses saat ini.
Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan).
Jendela sumber Titik henti Semua proses putus. Hanya proses jendela sumber yang putus.
Jendela sumber Jalankan ke kursor
Jendela sumber harus dalam proses saat ini.
Semua proses berjalan saat proses jendela sumber berjalan ke kursor lalu putus.
Kemudian semua proses lainnya putus.
Proses jendela sumber berjalan ke kursor.
Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan).
Jendela Proses>Putuskan Proses T/A Proses yang dipilih putus.
Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan).
Jendela Proses>Lanjutkan Proses T/A Proses yang dipilih dilanjutkan.
Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan).

Menemukan file sumber dan simbol (.pdb)

Untuk menavigasi kode sumber suatu 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 suatu proses, Anda dapat menavigasi menggunakan jendela Pembongkaran. Untuk informasi selengkapnya, lihat Cara: Menggunakan jendela Pembongkaran.

Beralih antar proses

Anda dapat melampirkan ke beberapa proses saat Anda men-debug, 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 putus.

Untuk mengatur proses saat ini dari toolbar Lokasi Debug:

  1. Untuk membuka toolbar Lokasi Debug, pilih Lihat>Toolbar>Lokasi Debug.

  2. Selama penelusuran kesalahan, pada toolbar Lokasi Debug, pilih proses yang ingin Anda atur sebagai proses saat ini dari menu dropdown Proses.

    Switch between processes

Untuk mengatur proses saat ini dari jendela Proses:

  1. Untuk membuka jendela Proses, saat penelusuran kesalahan, pilih Debug>Windows>Proses.

  2. Di jendela Proses, proses saat ini ditandai dengan panah kuning. Klik dua kali proses yang ingin Anda atur sebagai proses saat ini.

    Processes window

Beralih ke proses mengaturnya sebagai proses saat ini untuk tujuan penelusuran kesalahan. Jendela debugger menunjukkan status proses saat ini, dan perintah langkah hanya memengaruhi proses saat ini.

Menghentikan penelusuran kesalahan dengan beberapa proses

Secara default, saat Anda memilih Debug>Hentikan Penelusuran Kesalahan, debugger mengakhiri atau mencopot semua proses.

  • Jika proses saat ini diluncurkan di debugger, proses berakhir.

  • Jika Anda melampirkan debugger ke proses saat ini, debugger akan copot dari proses dan membiarkan proses berjalan.

Jika Anda mulai men-debug proses dari solusi Visual Studio, lalu lampirkan ke proses lain yang sudah berjalan, lalu pilih Hentikan Penelusuran Kesalahan, sesi penelusuran kesalahan berakhir. Proses yang dimulai di Visual Studio berakhir, sementara proses yang Anda lampirkan terus berjalan.

Untuk mengontrol cara Hentikan Penelusuran Kesalahan memengaruhi proses individual, di jendela Proses, klik kanan proses, lalu pilih atau kosongkan kotak centang Copot saat penelusuran kesalahan berhenti.

Catatan

Opsi debugger Putuskan semua proses saat satu proses putus tidak memengaruhi penghentian, pengakhiran, atau pencopotan dari proses.

Perintah hentikan, akhiri, dan copot

Tabel berikut menjelaskan perilaku perintah debugger hentikan, akhiri, dan copot dengan beberapa proses:

Perintah Keterangan
Debug>Hentikan Penelusuran Kesalahan Kecuali jika perilaku diubah di jendela Proses, proses yang dimulai oleh debugger akan berakhir, dan proses yang dilampirkan akan dicopot.
Debug>Akhiri Semua Semua proses berakhir.
Debug>Copot Semua Debugger copot dari semua proses.
Jendela Proses>Copot Proses Debugger copot dari proses yang dipilih.
Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan).
Jendela Proses>Akhiri Proses Proses yang dipilih berakhir.
Proses lain mempertahankan status yang ada (ditangguhkan atau berjalan).
Jendela Proses>Copot saat debug berhenti Jika dipilih, Debug>Hentikan Penelusuran Kesalahan copot dari proses yang dipilih.
Jika tidak dipilih, Debug>Hentikan Penelusuran Kesalahan mengakhiri proses yang dipilih.