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 Parallel Stacks berguna untuk debugging aplikasi multithread. Ini memiliki beberapa tampilan:
- Tampilan utas menampilkan informasi tumpukan panggilan untuk semua utas di aplikasi. Anda dapat menavigasi antara utas dan tumpukan bingkai pada utas tersebut.
-
tampilan Tugas menunjukkan informasi tumpukan panggilan yang berfokus pada tugas.
- Untuk aplikasi .NET menggunakan pola asinkron/tunggu, tampilan Tugas adalah yang paling membantu untuk penelusuran kesalahan. Untuk tutorial langkah demi langkah, lihat Men-debug aplikasi asinkron.
- Untuk aplikasi yang menggunakan Pustaka Paralel Tugas (TPL) tetapi bukan pola async/await, atau untuk aplikasi C++ yang menggunakan Concurrency Runtime, tampilan Threads di jendela Parallel Stacks merupakan alat yang paling berguna untuk debugging.
-
tampilan Tugas menunjukkan informasi tumpukan panggilan yang berfokus pada tugas.
- Untuk aplikasi .NET menggunakan pola asinkron/tunggu, tampilan Tugas adalah yang paling membantu untuk penelusuran kesalahan.
- Untuk aplikasi yang menggunakan Pustaka Paralel Tugas (TPL) tetapi bukan pola async/await, atau untuk aplikasi C++ yang menggunakan Concurrency Runtime, tampilan Threads di jendela Parallel Stacks merupakan alat yang paling berguna untuk debugging.
- Tampilan Metode memutar tumpukan panggilan pada metode yang dipilih.
Menggunakan jendela Tumpukan Paralel
Untuk membuka jendela Parallel Stacks, Anda harus berada dalam sesi debug. Pilih Debug>Windows>Parallel Stacks.
Kontrol bilah alat
Jendela
| Ikon | Pengendalian | Deskripsi |
|---|---|---|
|
kotak kombo Utas Tugas/ | Mengalihkan tampilan antara tumpukan panggilan utas dan tumpukan panggilan tugas. Untuk informasi selengkapnya, lihat tampilan Tugas dan tampilan Utas . |
|
Perlihatkan Hanya Ditandai | Menampilkan tumpukan panggilan hanya untuk utas yang ditandai di jendela debugger lain, seperti jendela Utas GPU dan jendela Parallel Watch. |
|
Alihkan Tampilan Metode | Beralih antara tampilan tumpukan panggilan dan Tampilan Metode . Untuk informasi selengkapnya, lihat Tampilan Metode. |
|
Gulir Otomatis ke Bingkai Tumpukan Saat Ini | Menggulung otomatis grafik sehingga kerangka tumpukan saat ini terlihat. Fitur ini berguna ketika Anda mengubah bingkai tumpukan saat ini dari jendela lain, atau ketika Anda mencapai titik henti baru dalam grafik besar. |
ikon ![]() |
Alihkan Kontrol Zoom | Memperlihatkan atau menyembunyikan kontrol zoom di sebelah kiri jendela. Terlepas dari visibilitas kontrol zoom, Anda juga dapat memperbesar tampilan dengan menekan Ctrl dan memutar roda mouse, atau dengan menekan Ctrl+Geser++ untuk memperbesar dan Ctrl+Shift+- untuk memperkecil tampilan. |
| Ikon | Pengendalian | Deskripsi |
|---|---|---|
|
kotak kombo Utas Tugas/ | Mengalihkan tampilan antara tumpukan panggilan utas dan tumpukan panggilan tugas. Untuk informasi selengkapnya, lihat tampilan Tugas dan tampilan Utas . |
|
Filter Kontrol | Menampilkan tumpukan panggilan hanya untuk himpunan benang tertentu yang Anda minati. |
|
Perlihatkan Hanya Ditandai | Menampilkan tumpukan panggilan hanya untuk utas yang ditandai di jendela debugger lain, seperti jendela Utas GPU dan jendela Parallel Watch. |
|
Alihkan Tampilan Metode | Beralih antara tampilan tumpukan panggilan dan Tampilan Metode . Untuk informasi selengkapnya, lihat Tampilan Metode. |
|
Gulir Otomatis ke Bingkai Tumpukan Saat Ini | Menggulung otomatis grafik sehingga kerangka tumpukan saat ini terlihat. Fitur ini berguna ketika Anda mengubah bingkai tumpukan saat ini dari jendela lain, atau ketika Anda mencapai titik henti baru dalam grafik besar. |
ikon ![]() |
Alihkan Kontrol Zoom | Memperlihatkan atau menyembunyikan kontrol zoom di sebelah kiri jendela. Terlepas dari visibilitas kontrol zoom, Anda juga dapat memperbesar tampilan dengan menekan Ctrl dan memutar roda mouse, atau dengan menekan Ctrl+Geser++ untuk memperbesar dan Ctrl+Shift+- untuk memperkecil tampilan. |
ikon pencarian ![]() |
Kontrol Pencarian | Dengan fitur ini Anda dapat dengan mudah mencari melalui bingkai tumpukan lalu menggunakan panah untuk menavigasi di antara hasil tersebut. |
|
Simpan Pengaturan | Memungkinkan Anda menyimpan/mengekspor konten dari jendela tumpukan paralel sebagai gambar. |
|
Perlihatkan Kontrol Kode Eksternal | Dengan menggunakan fitur ini, Anda dapat menampilkan/menyembunyikan tumpukan dari kode/pustaka eksternal. |
|
Meringkas tumpukan panggilan | Mulai dari Visual Studio 2022 versi 17.13 Pratinjau 4, Anda dapat memilih Meringkas saat Copilot diinstal dan diaktifkan. Tombol ini membuka jendela Obrolan Copilot, yang sudah dimuat sebelumnya dengan konteks utas yang relevan, memungkinkan Anda menjelajahi detail, termasuk status utas, panggilan fungsi, dan perbaikan yang disarankan. |
Ikon Rangka Tumpukan
Ikon berikut ini menyediakan informasi tentang bingkai tumpukan aktif dan saat ini di semua tampilan:
| Ikon | Deskripsi |
|---|---|
| panah kuning |
Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari thread saat ini. |
|
|
Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas noncurrent. |
|
|
Menunjukkan kerangka tumpukan saat ini (konteks debugger saat ini). Nama metode ditulis tebal di mana pun muncul. |
| Ikon | Deskripsi |
|---|---|
| panah kuning |
Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari thread saat ini. |
|
|
Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas noncurrent. |
|
|
Menunjukkan kerangka tumpukan saat ini (konteks debugger saat ini). Nama metode ditulis tebal di mana pun muncul. |
|
|
(.NET) Menunjukkan bahwa bingkai tumpukan saat ini memiliki peringatan status Kritis seperti Kebuntuan. |
| Status |
(.NET) Menunjukkan simpul yang di-deadlock. |
|
|
(.NET) Menunjukkan bahwa bingkai tumpukan saat ini memiliki informasi tambahan seperti Menunggu, Menunggu dikunci, dimiliki oleh, dll. |
| |
(.NET) Menunjukkan bahwa tugas saat ini dalam status diblokir/menunggu, dll. |
|
|
Menunjukkan tugas yang sedang berjalan. |
Item dalam menu konteks
Item menu pintasan berikut ini tersedia saat Anda mengklik kanan metode di tampilan Utas atau tampilan Tugas. Enam item terakhir sama seperti di jendela Call Stack .
| Item menu | Deskripsi |
|---|---|
| Bendera | Menandai item terpilih. |
| Batalkan Penandaan | Menghapus penandaan pada item yang dipilih. |
| Membekukan | Membekukan item terpilih. |
| Cair | Mencairkan item yang dipilih. |
| Beralih ke Bingkai | Sama seperti perintah menu yang sesuai di jendela Call Stack. Namun, di jendela Tumpukan Paralel , satu metode mungkin berada dalam beberapa bingkai. Anda dapat memilih bingkai yang Anda inginkan di submenu untuk item ini. Jika salah satu bingkai tumpukan ada di utas saat ini, bingkai tersebut dipilih secara default di submenu. |
| Buka Tugas atau Buka Utas | Beralih ke Tugas |
| Buka kode sumber | Masuk ke lokasi yang sesuai di jendela kode sumber. |
| Pergi Ke Pembongkaran | Menuju lokasi yang sesuai di jendela Pembongkaran . |
| Tampilkan Kode Eksternal | Memperlihatkan atau menyembunyikan kode eksternal. |
| Tampilan Heksadesimal | Beralih antara tampilan desimal dan heksadesimal. |
| Tampilkan Utas di Sumber | Menandai lokasi thread program di jendela kode sumber. |
| Informasi Beban Simbol | Membuka kotak dialog Informasi Beban Simbol |
| Pengaturan Simbol | Membuka kotak dialog Pengaturan Simbol. |
| Item menu | Deskripsi |
|---|---|
| Salin |
Salin item terpilih. |
| Pilih Semua Bingkai di Bawah | Memilih semua bingkai pada tumpukan yang dipilih. |
| Bendera | Menandai item terpilih. |
| Batalkan Penandaan | Menghapus penandaan pada item yang dipilih. |
| Membekukan | Membekukan item terpilih. |
| Cair | Mencairkan item yang dipilih. |
| Beralih ke Bingkai | Sama seperti perintah menu yang sesuai di jendela Call Stack. Namun, di jendela Tumpukan Paralel , satu metode mungkin berada dalam beberapa bingkai. Anda dapat memilih bingkai yang Anda inginkan di submenu untuk item ini. Jika salah satu bingkai tumpukan ada di utas saat ini, bingkai tersebut dipilih secara default di submenu. |
| Buka Tugas atau Buka Utas | Beralih ke Tugas |
| Buka kode sumber | Masuk ke lokasi yang sesuai di jendela kode sumber. |
| Pergi Ke Pembongkaran | Menuju lokasi yang sesuai di jendela Pembongkaran . |
| Tampilkan Kode Eksternal | Memperlihatkan atau menyembunyikan kode eksternal. |
| Tampilan Heksadesimal | Beralih antara tampilan desimal dan heksadesimal. |
| Tampilkan Utas di Sumber | Menandai lokasi thread program di jendela kode sumber. |
| Informasi Beban Simbol | Membuka kotak dialog Informasi Beban Simbol |
| Pengaturan Simbol | Membuka kotak dialog Pengaturan Simbol. |
Tampilan Utas
Dalam tampilan Utas, kerangka tumpukan dan jalur panggilan utas saat ini disorot dengan warna biru. Lokasi utas saat ini diperlihatkan oleh panah kuning.
Untuk mengubah kerangka tumpukan saat ini, klik dua kali metode yang berbeda. Ini mungkin juga mengalihkan utas saat ini, tergantung pada apakah metode yang Anda pilih adalah bagian dari utas saat ini atau utas lain.
Saat grafik tampilan
Ilustrasi berikut menunjukkan utas utama dalam transisi kode terkelola ke kode asli. Lima thread dalam metode ini. Empat utas terus dijalankan dalam konteks metode S.C, sementara satu utas pekerja berlanjut dalam transisi dari kode terkelola ke kode asli, yang mengatur nama pada utas pekerja.
Tabel berikut ini menjelaskan fitur utama dari tampilan Utas :
| Callout | Nama elemen | Deskripsi |
|---|---|---|
| 1 | Memanggil segmen tumpukan atau simpul | Berisi serangkaian metode untuk satu atau lebih benang. Jika bingkai tidak memiliki garis panah yang tersambung ke bingkai tersebut, bingkai tersebut menunjukkan seluruh jalur panggilan untuk benang. |
| 2 | Sorotan biru | Menunjukkan jalur panggilan utas saat ini. |
| 3 | Garis panah | Sambungkan simpul untuk membentuk seluruh lintasan panggilan untuk utas-utas. |
| 4 | Header simpul | Memperlihatkan jumlah proses/utas, nama utas, dan ID utas untuk node. |
| 5 | Metode | Mewakili satu atau beberapa bingkai tumpukan dalam metode yang sama. |
| 6 | Petunjuk pada metode | Muncul saat Anda mengarahkan kursor di atas metode. Dalam tampilan Utas, tooltip menampilkan semua utas, dalam tabel yang mirip dengan jendela Utas. |
| 7 | Deskripsi utas | Deskripsi utas yang dihasilkan AI. Mulai Visual Studio 2022 versi 17.13 Pratinjau 1, deskripsi ini ada saat Copilot diinstal dan diaktifkan. |
Dapatkan bantuan AI
Jika Anda memiliki Copilot, Anda bisa mendapatkan bantuan AI dalam tampilan Utas dengan deskripsi utas yang dihasilkan AI dan dengan menggunakan tombol Hasilkan Insight . Gunakan tombol Buat Cuplikan Layar Wawasan
untuk berinteraksi dengan Copilot tentang data utas yang Anda lihat. Dalam skenario ini, Copilot sudah mengetahui konteks untuk pertanyaan Anda, jadi Anda tidak perlu memberikan konteks sendiri dalam obrolan. Untuk informasi selengkapnya, lihat Debug dengan Copilot.
Untuk mengaktifkan atau menonaktifkan deskripsi ringkasan utas, buka Alat>Opsi dan perluas bagian Semua Pengaturan>GitHub>Copilot>Debugger dan Diagnostik. Pilih atau hapus centang pada kotak centang Aktifkan ringkasan AI di jendela Tumpukan Paralel.
Untuk mengaktifkan atau menonaktifkan deskripsi ringkasan utas, buka dialog Alat>Opsi, dan perluas bagian GitHub>Copilot. Di kategori Debugger dan Diagnostik , pilih atau kosongkan kotak centang Aktifkan ringkasan AI di jendela Tumpukan Paralel .
Ilustrasi berikut menunjukkan satu utas yang beralih dari kode Main ke transisi kode Terkelola ke Native. Enam thread ada dalam metode yang sedang digunakan. Dua utas berlanjut ke Thread.Sleep, dan dua berlanjut ke Console.WriteLine dan utas saat ini berlanjut ke SyncTextWriter.WriteLine.
Tabel berikut ini menjelaskan fitur utama dari tampilan Utas :
| Callout | Nama elemen | Deskripsi |
|---|---|---|
| 1 | Memanggil segmen tumpukan atau simpul | Berisi serangkaian metode untuk satu atau lebih benang. Jika bingkai tidak memiliki garis panah yang tersambung ke bingkai tersebut, bingkai tersebut menunjukkan seluruh jalur panggilan untuk benang. |
| 2 | Sorotan biru | Menunjukkan jalur panggilan utas saat ini. |
| 3 | Garis panah | Sambungkan simpul untuk membentuk seluruh lintasan panggilan untuk utas-utas. |
| 4 | Header simpul | Menunjukkan jumlah proses dan utas untuk simpul. |
| 5 | Metode | Mewakili satu atau beberapa bingkai tumpukan dalam metode yang sama. |
| 6 | Petunjuk pada metode | Muncul saat Anda mengarahkan kursor di atas metode. Dalam tampilan Utas, tooltip menampilkan semua utas, dalam tabel yang mirip dengan jendela Utas. |
Tampilan tugas
Untuk aplikasi .NET menggunakan pola asinkron/tunggu, tampilan Tugas adalah yang paling membantu untuk penelusuran kesalahan. Untuk tutorial langkah demi langkah, lihat Men-debug aplikasi asinkron.
Dalam tampilan Tugas , Anda bisa:
- Lihat visualisasi tumpukan panggilan untuk aplikasi yang menggunakan pola asinkron/tunggu.
- Identifikasi kode asinkron yang dijadwalkan untuk dijalankan tetapi belum berjalan.
Ilustrasi berikut ini memperlihatkan tampilan Utas di bagian atas dan tampilan Tugas terkait di bagian bawah.
Arahkan penunjuk mouse ke metode untuk menampilkan tooltip dengan informasi tambahan. Dalam tampilan Tugas, petunjuk memperlihatkan semua tugas dalam tabel yang mirip dengan jendela Tugas.
Gambar berikut menunjukkan tooltip untuk sebuah metode di tampilan Threads di bagian atas dan untuk tampilan Tasks yang sesuai di bagian bawah.
Tampilan Metode
Dari tampilan Utas
Jika Anda beralih ke bingkai tumpukan baru, Anda menjadikan metode tersebut sebagai metode saat ini, dan Tampilan Metode menampilkan semua penelepon dan panggilan untuk metode baru. Skenario ini dapat menyebabkan beberapa thread muncul atau menghilang dari tampilan, tergantung apakah metode tersebut muncul pada stack panggilan mereka. Untuk kembali ke tampilan tumpukan panggilan, pilih ikon toolbar Tampilan Metode lagi.
Melakukan debug thread dan tugas dengan tutorial berbentuk video tentang stack paralel
Tutorial video ini menunjukkan bagaimana Anda dapat menggunakan tampilan Utas dan Tugas dari jendela Parallel Stacks di Visual Studio 2022 untuk men-debug aplikasi multithread Anda.


