Menampilkan utas dan tugas di jendela Tumpukan Paralel (C#, Visual Basic, C++)
Jendela Tumpukan Paralel berguna untuk men-debug aplikasi multiutas. Ini memiliki beberapa tampilan:
Tampilan utas menampilkan informasi tumpukan panggilan untuk semua utas di aplikasi. Anda dapat menavigasi antara utas dan bingkai tumpukan pada utas tersebut.
Tampilan tugas memperlihatkan informasi tumpukan panggilan yang berpusat pada tugas.
- Dalam kode terkelola, tampilan Tugas memperlihatkan tumpukan panggilan System.Threading.Tasks.Task.
- Dalam kode asli, tampilan Tugas memperlihatkan tumpukan panggilan grup tugas, algoritma paralel, agen asinkron, dan tugas ringan.
Tampilan Metode mempivot tumpukan panggilan pada metode yang dipilih.
Menggunakan jendela Tumpukan Paralel
Untuk membuka jendela Tumpukan Paralel, Anda harus berada dalam sesi penelusuran kesalahan. Pilih Debug>Windows>Tumpukan Parallel.
Kontrol bilah alat
Jendela Tumpukan Paralel memiliki kontrol toolbar berikut:
Ikon | Menguasai | Deskripsi |
---|---|---|
Utas/Tugas kotak kombo | Mengalihkan tampilan antara tumpukan panggilan utas dan tumpukan panggilan tugas. Untuk informasi selengkapnya, lihat Tampilan tugas dan Tampilan utas. | |
Perlihatkan Hanya Berbendera | Menampilkan tumpukan panggilan hanya untuk utas yang ditandai di jendela debugger lainnya, seperti jendela Utas GPU dan jendela Pengawasan Paralel. | |
Ganti Tampilan Metode | Beralih antara tampilan tumpukan panggilan dan Tampilan Metode. Untuk informasi lebih lanjut, lihat Tampilan Metode. | |
Gulir Otomatis ke Bingkai Tumpukan Saat Ini | Autoscrolls grafik sehingga bingkai tumpukan saat ini terlihat. Fitur ini berguna ketika Anda mengubah bingkai tumpukan saat ini dari jendela lain, atau ketika Anda menekan titik henti baru dalam grafik besar. | |
Ganti 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+Shift++ untuk memperbesar dan Perbesar tampilan Ctrl+Shift+- untuk memperkecil tampilan. |
Ikon | Menguasai | Deskripsi |
---|---|---|
Utas/Tugas kotak kombo | Mengalihkan tampilan antara tumpukan panggilan utas dan tumpukan panggilan tugas. Untuk informasi selengkapnya, lihat Tampilan tugas dan Tampilan utas. | |
Kontrol Filter | Menampilkan tumpukan panggilan hanya untuk sekumpulan utas tertentu yang Anda minati. | |
Perlihatkan Hanya Berbendera | Menampilkan tumpukan panggilan hanya untuk utas yang ditandai di jendela debugger lainnya, seperti jendela Utas GPU dan jendela Pengawasan Paralel. | |
Ganti Tampilan Metode | Beralih antara tampilan tumpukan panggilan dan Tampilan Metode. Untuk informasi lebih lanjut, lihat Tampilan Metode. | |
Gulir Otomatis ke Bingkai Tumpukan Saat Ini | Autoscrolls grafik sehingga bingkai tumpukan saat ini terlihat. Fitur ini berguna ketika Anda mengubah bingkai tumpukan saat ini dari jendela lain, atau ketika Anda menekan titik henti baru dalam grafik besar. | |
Ganti 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+Shift++ untuk memperbesar dan Perbesar tampilan Ctrl+Shift+- untuk memperkecil tampilan. |
|
Kontrol Pencarian | Dengan fitur ini Anda dapat dengan mudah mencari melalui bingkai tumpukan lalu menggunakan panah untuk menavigasi di antara hasil tersebut. | |
Simpan Kontrol | 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. |
Ikon Bingkai Tumpukan
Ikon berikut ini menyediakan informasi tentang bingkai tumpukan aktif dan saat ini di semua tampilan:
Ikon | Deskripsi |
---|---|
Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas saat ini. | |
Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas yang tidak terkini. | |
Menunjukkan bingkai tumpukan saat ini (konteks debugger saat ini). Nama metode dicetak tebal di mana pun itu muncul. |
Ikon | Deskripsi |
---|---|
Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas saat ini. | |
Menunjukkan lokasi saat ini (bingkai tumpukan aktif) dari utas yang tidak terkini. | |
Menunjukkan bingkai tumpukan saat ini (konteks debugger saat ini). Nama metode dicetak tebal di mana pun itu muncul. | |
Menunjukkan bahwa bingkai tumpukan saat ini memiliki peringatan status Kritis seperti Kebuntuan. | |
Menunjukkan simpul yang di-deadlock. | |
Menunjukkan bahwa bingkai tumpukan saat ini memiliki informasi tambahan seperti Menunggu, Menunggu dikunci, dimiliki oleh, dll. | |
Menunjukkan bahwa tugas saat ini dalam status diblokir/menunggu, dll. | |
Menunjukkan bahwa tugas yang sedang berjalan. |
Item menu konteks
Item menu pintasan berikut ini tersedia saat Anda mengeklik kanan metode dalam tampilan Utas atau tampilan Tugas. Enam item terakhir sama seperti di jendela Tumpukan Panggilan.
Item menu | Deskripsi |
---|---|
Bendera | Menandai item terpilih. |
Unflag | Menghapus tanda kuota item yang dipilih. |
Membekukan | Membekukan unsur terpilih. |
Thaw | Mencairkan item yang dipilih. |
Beralih ke Bingkai | Sama seperti perintah menu yang sesuai di jendela Tumpukan Panggilan. 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 berada di utas saat ini, bingkai tersebut dipilih secara default di submenu. |
Buka Tugas atau Buka Utas | Beralih ke tampilan Tugas atau Utas, dan menjaga agar bingkai tumpukan yang sama tetap disorot. |
Buka Kode Sumber | Masuk ke lokasi yang sesuai di jendela kode sumber. |
Buka Pembongkaran | Pergi ke lokasi yang sesuai di jendela Pembongkaran. |
Perlihatkan Kode Eksternal | Memperlihatkan atau menyembunyikan kode eksternal. |
Tampilan Heksadesimal | Beralih antara tampilan desimal dan heksadesimal. |
Perlihatkan Utas di Sumber | Menandai lokasi utas di jendela kode sumber. |
Informasi Beban Simbol | Membuka kotak dialog Informasi Pemuatan Simbol. |
Pengaturan Simbol | Membuka kotak dialog Pengaturan Simbol. |
Item menu | Deskripsi |
---|---|
Salinan | Salin item terpilih. |
Pilih Semua Bingkai Di Bawah Ini | Memilih semua bingkai di bawah tumpukan yang dipilih. |
Bendera | Menandai item terpilih. |
Unflag | Menghapus tanda kuota item yang dipilih. |
Membekukan | Membekukan unsur terpilih. |
Thaw | Mencairkan item yang dipilih. |
Beralih ke Bingkai | Sama seperti perintah menu yang sesuai di jendela Tumpukan Panggilan. 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 berada di utas saat ini, bingkai tersebut dipilih secara default di submenu. |
Buka Tugas atau Buka Utas | Beralih ke tampilan Tugas atau Utas, dan menjaga agar bingkai tumpukan yang sama tetap disorot. |
Buka Kode Sumber | Masuk ke lokasi yang sesuai di jendela kode sumber. |
Buka Pembongkaran | Pergi ke lokasi yang sesuai di jendela Pembongkaran. |
Perlihatkan Kode Eksternal | Memperlihatkan atau menyembunyikan kode eksternal. |
Tampilan Heksadesimal | Beralih antara tampilan desimal dan heksadesimal. |
Perlihatkan Utas di Sumber | Menandai lokasi utas di jendela kode sumber. |
Informasi Beban Simbol | Membuka kotak dialog Informasi Pemuatan Simbol. |
Pengaturan Simbol | Membuka kotak dialog Pengaturan Simbol. |
Tampilan utas
Dalam tampilan Utas, bingkai tumpukan dan jalur panggilan utas saat ini disorot dengan warna biru. Lokasi utas saat ini ditandai oleh panah kuning.
Untuk mengubah bingkai 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 Utas terlalu besar untuk dapat masuk ke jendela, kontrol Sudut Pandang Burung muncul di jendela. Anda dapat memindahkan bingkai dalam kontrol untuk menavigasi ke berbagai bagian grafik.
Ilustrasi berikut menunjukkan satu utas yang beralih dari Utama ke transisi Kode Terkelola ke Asli. Enam utas berada dalam metode saat ini. Satu berlanjut ke Thread.Sleep, dan yang lain berlanjut ke Console.WriteLine lalu ke SyncTextWriter.WriteLine.
Tabel berikut menjelaskan fitur utama tampilan Utas:
Boks keterangan | Nama elemen | Deskripsi |
---|---|---|
1 | Memanggil segmen tumpukan atau simpul | Berisi serangkaian metode untuk satu atau beberapa utas. Jika bingkai tidak memiliki garis panah yang tersambung ke bingkai tersebut, bingkai akan menampilkan seluruh jalur panggilan untuk utas. |
2 | Sorotan biru | Menunjukkan jalur panggilan utas saat ini. |
3 | Garis panah | Koneksi simpul untuk membentuk seluruh jalur panggilan untuk utas. |
4 | Judul simpul | Memperlihatkan jumlah proses dan utas untuk simpul. |
5 | Metode | Mewakili satu atau beberapa bingkai tumpukan dalam metode yang sama. |
6 | Tooltip pada metode | Muncul saat Anda mengarahkan mouse ke atas metode. Dalam tampilan Utas, tooltip menampilkan semua utas, dalam tabel yang mirip dengan jendela Utas. |
Ilustrasi berikut menunjukkan satu utas yang beralih dari Utama ke transisi Kode Terkelola ke Asli. Lima utas berada dalam metode saat ini. Satu berlanjut ke ServerClass.InstanceMethod, dan yang lain berlanjut ke Worker.Thread.Start dan kemudian ke StartupHook.Initialize.AnonymousMethod.
Tabel berikut menjelaskan fitur utama tampilan Utas:
Boks keterangan | Nama elemen | Deskripsi |
---|---|---|
1 | Memanggil segmen tumpukan atau simpul | Berisi serangkaian metode untuk satu atau beberapa utas. Jika bingkai tidak memiliki garis panah yang tersambung ke bingkai tersebut, bingkai akan menampilkan seluruh jalur panggilan untuk utas. |
2 | Sorotan biru | Menunjukkan jalur panggilan utas saat ini. |
3 | Garis panah | Koneksi simpul untuk membentuk seluruh jalur panggilan untuk utas. |
4 | Judul simpul | Memperlihatkan jumlah proses/utas, nama utas, dan ID utas untuk simpul. |
5 | Metode | Mewakili satu atau beberapa bingkai tumpukan dalam metode yang sama. |
6 | Tooltip pada metode | Muncul saat Anda mengarahkan mouse ke atas metode. Dalam tampilan Utas, tooltip menampilkan semua utas, dalam tabel yang mirip dengan jendela Utas. |
Tampilan tugas
Jika aplikasi Anda menggunakan objek System.Threading.Tasks.Task (kode terkelola) atau objek task_handle
(kode asli) untuk mengekspresikan paralelisme, Anda dapat menggunakan tampilan Tugas. Tampilan tugas memperlihatkan tumpukan tugas panggilan, bukan utas.
Dalam tampilan Tugas:
- Tumpukan panggilan utas yang tidak menjalankan tugas tidak ditampilkan.
- Tumpukan panggilan utas yang menjalankan tugas dipangkas secara visual di bagian atas dan bawah, untuk memperlihatkan bingkai yang paling relevan untuk tugas.
- Ketika beberapa tugas berada di satu utas, tumpukan panggilan tugas tersebut ditampilkan dalam simpul terpisah.
Untuk melihat seluruh tumpukan panggilan, beralih kembali ke tampilan Utas dengan mengeklik kanan dalam bingkai tumpukan dan memilih Buka Utas.
Ilustrasi berikut ini memperlihatkan tampilan Utas di bagian atas dan tampilan Tugas terkait di bagian bawah.
Arahkan mouse ke atas metode untuk menampilkan tooltip dengan informasi tambahan. Dalam tampilan Tugas, tooltip memperlihatkan semua tugas dalam tabel yang mirip dengan jendela Tugas.
Gambar berikut menunjukkan tooltip untuk metode dalam tampilan Utas di bagian atas dan untuk tampilan Tugas yang sesuai di bagian bawah.
Tampilan Metode
Dari tampilan Utas atau tampilan Tugas, Anda dapat mempivot grafik pada metode saat ini dengan memilih ikon Alihkan Tampilan Metode pada toolbar. Tampilan Metode menunjukkan sekilas semua metode pada semua utas yang memanggil atau dipanggil oleh metode saat ini. Ilustrasi berikut menunjukkan tampilan informasi yang sama dalam tampilan Utas di sebelah kiri dan di Tampilan Metode di sebelah kanan.
Jika Anda beralih ke bingkai tumpukan baru, Anda membuat metode tersebut sebagai metode saat ini, dan Tampilan Metode memperlihatkan semua penelepon dan penerima panggilan untuk metode baru. Ini dapat menyebabkan beberapa utas muncul atau menghilang dari tampilan, tergantung pada apakah metode tersebut muncul pada tumpukan panggilan mereka. Untuk kembali ke tampilan tumpukan panggilan, pilih ikon toolbar Tampilan Metode lagi.
Men-debug utas dan tugas dengan tutorial video tumpukan 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.
- Tugas penelusuran kesalahan dengan jendela Tumpukan Paralel
- Men-debug utas dengan jendela Tumpukan Paralel