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.
Jendela Utas di debugger Visual Studio memungkinkan Anda memeriksa dan bekerja dengan thread dalam aplikasi yang Anda debug. Jendela ini menyediakan fitur untuk mengelompokkan, mengurutkan, menandai, membekukan, mencairkan, dan mencari utas dalam kode Anda, serta menampilkan tumpukan panggilan.
Jendela Utas hanya tersedia saat debugger Visual Studio berjalan. Selama sesi penelusuran kesalahan, Anda dapat membuka jendela dengan memilih Debug>Windows>Utas.
Artikel ini menjelaskan cara menggunakan jendela Utas untuk program C#, Visual Basic, atau C++ Anda. Namun, tampilan Utas di jendela Tumpukan Paralel sering kali lebih membantu dalam pemecahan masalah. Untuk informasi selengkapnya, lihat Men-debug kebuntuan menggunakan tampilan Utas dan Menampilkan utas dan tugas di jendela Tumpukan Paralel.
Menjelajahi tabel jendela Utas
Jendela Utas menampilkan tabel di mana setiap baris sesuai dengan utas terpisah dalam aplikasi Anda. Dalam tampilan default, tabel menunjukkan semua utas di aplikasi Anda. Anda dapat mengonfigurasi pengaturan tabel untuk menampilkan hanya utas yang menarik bagi Anda. Tabel menyediakan beberapa kolom untuk menjelaskan utas secara rinci. Anda dapat menyesuaikan penempatan kolom dan menyembunyikan kolom yang tidak perlu.
Tabel berikut ini menjelaskan semua kolom yang tersedia untuk tabel jendela Threads dan menunjukkan apakah kolom terlihat atau tersembunyi pada tampilan default. Kolom dicantumkan sesuai dengan posisi tabel defaultnya dari kiri ke kanan.
| Kolom | Bawaan | Deskripsi |
|---|---|---|
| Bendera | Terlihat, tidak berlabel | Bendera merah di kolom ini menunjukkan topik yang memerlukan perhatian khusus. Pilih ikon bendera (warna ikon berubah menjadi merah) untuk menandai atau menghapus tanda (ikon berubah menjadi garis bendera) pada percakapan. Ikon bendera berwarna membantu membedakan utas bertanda dari utas lain dalam tabel. Untuk informasi selengkapnya, lihat Tandai dan hapus tanda utas. |
| utas Saat Ini | Terlihat, tidak berlabel | Ikon panah kuning di kolom ini menunjukkan utas saat ini pada aplikasi yang sedang berjalan di debugger. Ikon garis besar panah di kolom ini menunjukkan konteks debugger saat ini untuk utas yang tidak sedang berjalan. |
| ID | Terlihat | Menyediakan nomor identifikasi untuk setiap utas. |
| ID Terkelola | Terlihat | Menampilkan nomor identifikasi yang dikelola untuk thread yang dikelola. |
| Kategori | Terlihat | Menunjukkan kategori utas, apakah itu utas antarmuka pengguna, penangan panggilan prosedur jarak jauh, atau utas pekerja. Kategori khusus mengidentifikasi utas utama aplikasi. |
| Nama | Terlihat | Mengidentifikasi setiap utas berdasarkan namanya, atau <Tanpa Nama> jika utas tidak memiliki nama yang ditentukan. Ketika utas tidak ada lagi, utas diberi label [Utas Hancur]. |
| Lokasi | Terlihat | Menunjukkan di mana utas berjalan dalam tumpukan panggilan aplikasi. Pilih panah tarik-turun untuk melihat stack panggilan penuh dari utas tersebut. Ketika utas tidak ada lagi, lokasi diberi label sebagai <tidak tersedia>. |
| Prioritas | Tersembunyi | Menampilkan prioritas atau tingkatan prioritas yang ditetapkan oleh sistem untuk setiap utas. |
| Masker Afinitas | Tersembunyi | Memperlihatkan masker afinitas prosesor untuk setiap utas. Dalam sistem multiprosesor, masker afinitas menentukan prosesor tempat utas dapat berjalan. |
| Jumlah yang Ditangguhkan | Tersembunyi | Menyediakan jumlah yang ditangguhkan. Jumlah ini menentukan apakah utas dapat berjalan. Untuk informasi selengkapnya, lihat bagian Membekukan dan mencairkan utas. |
| Nama Proses | Tersembunyi | Menampilkan proses tempat setiap utas berada. Data dalam kolom ini dapat berguna saat Anda men-debug banyak proses. |
| ID Proses | Tersembunyi | Memperlihatkan ID proses tempat setiap utas berada. |
| Kualifikasi Transportasi | Tersembunyi | Secara unik mengidentifikasi komputer tempat debugger terhubung. |
Perlihatkan dan sembunyikan kolom tabel
Di toolbar jendela Utas, dropdown Kolom memperlihatkan daftar kolom yang tersedia. Perluas daftar dropdown dan pilih nama kolom untuk mengalihkan visibilitasnya dalam tabel. Kolom yang terlihat ditunjukkan dengan tanda centang dalam daftar.
Tandai topik untuk mendapatkan perhatian khusus
Gunakan ikon bendera untuk menandai utas yang membutuhkan perhatian khusus. Utas yang ditandai ditunjukkan oleh ikon bendera merah di tabel jendela Utas. Untuk informasi selengkapnya, lihat Tandai dan Hapus Tanda utas.
Perlihatkan hanya utas yang diberi tanda
Anda dapat memfilter jendela Utas untuk memperlihatkan hanya utas yang ditandai. Pada toolbar jendela Utas , pilih Perlihatkan Hanya Utas yang Ditandai (ikon bendera ganda). Anda juga dapat menggunakan pintasan keyboardCtrl + 9. Tindakan ini hanya tersedia ketika ada utas yang ditandai.
Membekukan dan mencairkan benang
Ketika Anda membekukan utas, sistem tidak memulai eksekusi utas, bahkan jika sumber daya tersedia.
Dalam kode asli, Anda dapat menangguhkan atau melanjutkan utas dengan memanggil fungsi Windows SuspendThread dan ResumeThread. Anda juga dapat memanggil fungsi MFC CWinThread::SuspendThread dan CWinThread::ResumeThread. Jika Anda memanggil fungsi SuspendThread atau ResumeThread, jumlah penangguhan yang ditampilkan di jendela Utas berubah. Jumlah yang ditangguhkan tidak berubah jika Anda membekukan atau mencairkan utas asli. Sebuah thread tidak dapat berjalan dalam kode asli kecuali jika thread tersebut dicairkan dan memiliki jumlah penangguhan nol.
Dalam kode terkelola, jumlah yang ditangguhkan berubah saat Anda membekukan atau mencairkan utas. Jika Anda membekukan utas dalam kode terkelola, jumlah penangguhannya menjadi 1. Saat Anda membekukan utas dalam kode asli, jumlah penangguhannya adalah 0, kecuali Anda menggunakan panggilan SuspendThread.
Nota
Saat Anda men-debug panggilan dari kode asli ke kode terkelola, kode terkelola berjalan di utas fisik yang sama dengan kode asli panggilan. Menangguhkan atau membekukan utas asli juga membekukan kode yang dikelola.
Mengubah eksekusi untuk utas yang dipilih
Anda dapat membekukan atau mencairkan eksekusi satu atau beberapa utas. Di jendela Utas, pilih utas yang ingin Anda perbarui status eksekusinya. Di toolbar jendela Utas , pilih Bekukan Utas (ikon jeda putar) atau Cairkan Utas (ikon putar hijau). Tindakan hanya berlaku untuk utas yang dipilih saat ini. Tindakan pembekuan dan pencairan juga tersedia di menu konteks klik kanan untuk setiap utas.
Mengubah utas saat ini
Ikon panah kuning di tabel jendela Utas menunjukkan utas saat ini (dan lokasi penunjuk eksekusi). Penanda utas asli saat ini juga tetap ada (diperlihatkan dengan ikon kerangka panah).
Beralih ke utas lain
Ada dua cara untuk mengganti utas saat ini di debugger. Klik dua kali utas apa pun di tabel jendela Utas untuk menjadikannya utas saat ini. Anda juga dapat mengklik kanan utas dan memilih Pindah ke Utas.
Menerapkan pengelompokan dan pengurutan pada utas
Anda dapat mengelompokkan utas pada tabel jendela Threads dengan menggunakan kriteria yang sama seperti kolom yang tersedia. Semua kriteria selalu tersedia untuk pengelompokan, terlepas dari apakah kolom terkait terlihat dalam tampilan saat ini. Anda hanya dapat memilih satu pengelompokan untuk tabel.
Saat Anda mengelompokkan utas, judul muncul dalam tabel untuk setiap grup. Judul menyertakan deskripsi grup bersama dengan jumlah anggota dalam grup. Jika Anda mengelompokkan menurut Nama, Anda mungkin melihat pengelompokan dengan judul seperti Utas Pekerja atau Utas Tanpa Tanda. Ikon panah perluas/ciutkan muncul di samping setiap judul grup.
Setelah Anda menerapkan kriteria pengelompokan, tampilan tabel jendela Threads diperbarui untuk menampilkan thread anggota dari setiap grup di bawah judul mereka. Gunakan ikon perluas/ciutkan panah untuk grup untuk memperlihatkan atau menyembunyikan anggota dalam tampilan saat ini.
Anda juga dapat menerapkan kriteria pengurutan tunggal ke utas di tabel jendela Utas. Pengelompokan lebih diutamakan daripada pengurutan. Misalnya, Anda dapat mengelompokkan utas menurut Kategori lalu mengurutkannya menurut ID dalam setiap Kategori.
Mengelompokkan utas dalam tabel
Di toolbar jendela Utas, perluas daftar dropdown Grup menurut, dan pilih kriteria untuk mengelompokkan utas. Anda juga dapat menghapus pengelompokan yang diterapkan dengan memilih Tidak Ada di menu tarik-turun Grup menurut .
Mengurutkan utas dalam tabel
Anda menerapkan pengurutan ke utas di jendela tabel Utas dengan memilih header kolom di bagian atas tabel, seperti Nama atau ID.
Saat Anda memilih header kolom, tampilan jendela tabel Utas akan menampilkan utas yang diurutkan menurut nilai di kolom yang dipilih. Kolom yang dipilih juga memperlihatkan ikon panah atas/bawah. Ikon panah atas menunjukkan pengurutan menurut kolom yang dipilih dalam urutan naik. Ikon panah bawah menunjukkan pengurutan menurut kolom yang dipilih dalam urutan menurun. Pilih header kolom untuk mengubah urutan pengurutan.
Mengurutkan utas dalam grup
Untuk mengurutkan utas dalam grup di jendela Utas , pertama-tama gunakan daftar dropdown Grup menurut untuk menerapkan kriteria pengelompokan. Kemudian, pilih header kolom untuk mengurutkan utas yang dikelompokkan menurut nilai di kolom yang dipilih.
Memperluas atau menciutkan semua grup
Ada cara cepat untuk menampilkan atau menyembunyikan semua pengelompokan dalam tampilan saat ini. Di toolbar jendela Utas, pilih Perluas grup (ikon kotak ganda dengan simbol plus) atau Ciutkan grup (ikon kotak ganda dengan simbol minus).
Cari topik
Anda dapat mencari utas di tabel jendela Utas dan mencari konten tertentu di salah satu kolom tabel yang terlihat. Saat Anda melakukan pencarian, Visual Studio menampilkan baris utas yang memiliki data kolom yang cocok dengan string pencarian. Pencarian juga memindai lokasi utas yang muncul di bagian atas tumpukan panggilan di kolom Lokasi.
Mencari konten tertentu di utas
Ada beberapa cara untuk mencari utas yang berisi konten tertentu. Di toolbar jendela Utas, masukkan string yang akan dicari dalam kotak Pencarian dan pilih Enter. Anda dapat menentukan huruf, angka, dan karakter khusus seperti < dalam string pencarian Anda. Saat pencarian selesai, jendela Threads akan memperbarui tabel untuk menampilkan utas dengan hasil yang sesuai. Visual Studio menyoroti instans tertentu yang cocok dengan string pencarian Anda. Untuk kembali ke tampilan utas reguler, pilih ikon X di samping kotak Pencarian.
Anda juga dapat mencari string yang sebelumnya Anda cari. Gunakan kotak dropdown Cari dan pilih string pencarian sebelumnya.
Cari tumpukan panggilan lengkap
Secara default, tumpukan panggilan penuh tidak dicari. Visual Studio mencari kecocokan hanya di utas yang terlihat di tabel jendela Threads.
Anda dapat menyertakan tumpukan panggilan lengkap dengan memilih Sertakan tumpukan panggilan dalam pencarian (ikon elemen daftar) di bilah alat jendela Utas. Saat opsi diaktifkan, ikon item daftar memiliki batas.
Menampilkan tumpukan panggilan dan beralih antar bingkai
Dalam program multithreaded, setiap utas memiliki tumpukan panggilannya sendiri. Jendela Utas menyediakan cara yang nyaman untuk melihat tumpukan ini.
Saran
Untuk melihat representasi visual dari tumpukan panggilan setiap utas, gunakan jendela Parallel Stacks.
Menampilkan tumpukan panggilan untuk utas
Di jendela Tabel Utas , cari utas yang ingin Anda periksa untuk melihat call stack-nya secara lengkap. Di kolom Lokasi , pilih panah perluas/ciutkan di sebelah kiri lokasi utas. Lokasi diperluas untuk menampilkan tumpukan panggilan lengkap untuk utas. Pilih panah lagi untuk memperlihatkan lokasi saja.
Menampilkan atau menciutkan semua tumpukan panggilan
Anda dapat mengontrol apakah jendela Utas selalu menampilkan tumpukan panggilan penuh untuk semua utas dalam tabel. Di toolbar jendela Utas, pilih Perluas tumpukan panggilan (ikon kotak dengan simbol plus) atau Ciutkan tumpukan panggilan (ikon kotak dengan simbol minus).