Dela via


Visa trådar och uppgifter i fönstret Parallella staplar (C#, Visual Basic, C++)

Fönstret Parallella staplar är användbart för felsökning av flertrådade program. Den har flera vyer:

Använd fönstret Parallella staplar

För att öppna fönstret Parallella staplar måste du vara i en debuggningssession. Välj Felsöka>Windows>Parallella staplar.

Verktygsfältskontroller

Fönstret Parallella staplar har följande verktygsfältskontroller:

Skärmbild av Verktygsfältet i fönstret Parallella staplar.

Ikon Kontroll Beskrivning
Kombinationsrutan Trådar/uppgifter Trådar/Uppgifter kombinationsrutan Växlar vyn mellan anropsstackar med trådar och anropsstackar med uppgifter. Mer information finns i vyn Uppgifter och Trådar.
Visa endast flaggad ikon Visa endast flaggade Visar endast anropsstackar för trådar som flaggas i andra felsökningsfönster, till exempel GPU-trådar fönster och fönstret Parallel Watch.
Ikonen Växla metodvy Växla metodvy Växlar mellan vyer för anropsstack och metodvy. Mer information finns i Metodvy.
Rulla automatiskt till aktuell ikon Rulla automatiskt till aktuell stackram Skrollar automatiskt grafen så att den aktuella stackramen visas. Den här funktionen är användbar när du ändrar den aktuella stackramen från andra fönster eller när du träffar en ny brytpunkt i stora grafer.
Växla zoomikon Växla zoomkontroll Visar eller döljer zoomkontrollen till vänster i fönstret.

Oavsett zoomkontrollens synlighet kan du också zooma genom att trycka på Ctrl och vrida mushjulet, eller genom att trycka på Ctrl+Skift++ för att zooma in och Ctrl+Skift+- för att zooma ut.

Skärmbild av verktygsfältet i fönstret Parallella staplar 2022.

Ikon Kontroll Beskrivning
Kombinationsrutan Trådar/uppgifter Trådar/Uppgifter kombinationsrutan Växlar vyn mellan anropsstackar med trådar och anropsstackar med uppgifter. Mer information finns i vyn Uppgifter och Trådar.
filterikon filtrera kontroll Visar endast anropsstackar för den specifika uppsättning trådar som du är intresserad av.
Visa endast flaggad ikon Visa endast flaggade Visar endast anropsstackar för trådar som flaggas i andra felsökningsfönster, till exempel GPU-trådar fönster och fönstret Parallel Watch.
Ikonen Växla metodvy Växla metodvy Växlar mellan vyer för anropsstack och metodvy. Mer information finns i Metodvy.
Rulla automatiskt till aktuell ikon Rulla automatiskt till aktuell stackram Skrollar automatiskt grafen så att den aktuella stackramen visas. Den här funktionen är användbar när du ändrar den aktuella stackramen från andra fönster eller när du träffar en ny brytpunkt i stora grafer.
Växla zoomikon Växla zoomkontroll Visar eller döljer zoomkontrollen till vänster i fönstret.

Oavsett zoomkontrollens synlighet kan du också zooma genom att trycka på Ctrl och vrida mushjulet, eller genom att trycka på Ctrl+Skift++ för att zooma in och Ctrl+Skift+- för att zooma ut.
sökikonen Sökkontroll Med den här funktionen kan du enkelt söka igenom stackramar och sedan använda pilar för att navigera mellan dessa resultat.
Spara-ikon Spara kontroll Gör att du kan spara/exportera innehållet från det parallella stackfönstret som en bild.
ikon för extern kod Visa extern kodstyrning Med den här funktionen kan du visa/dölja staplarna från den externa koden/biblioteken.
Copilot Sammanfatta ikonen Sammanfatta anropsstackar Från och med Visual Studio 2022 version 17.13 Förhandsversion 4 kan du välja Sammanfatta när Copilot har installerats och aktiverats. Den här knappen öppnar Copilot Chat-fönstret, förinstallerat med relevant trådkontext, så att du kan utforska information, inklusive trådtillstånd, funktionsanrop och föreslagna korrigeringar.

Stack Frame-ikoner

Följande ikoner innehåller information om aktiva och aktuella stackramar i alla vyer:

Ikon Beskrivning
gul pil Anger den aktuella platsen (aktiv stackram) för den aktuella tråden.
Trådar-ikonen Anger den aktuella platsen (aktiv stackram) för en icke-aktuell tråd.
grön pil Anger den aktuella stackramen (den aktuella felsökningskontexten). Metodnamnet är fetstil oavsett var det visas.
Ikon Beskrivning
gul pil Anger den aktuella platsen (aktiv stackram) för den aktuella tråden.
Trådar-ikonen Anger den aktuella platsen (aktiv stackram) för en icke-aktuell tråd.
grön pil Anger den aktuella stackramen (den aktuella felsökningskontexten). Metodnamnet är fetstil oavsett var det visas.
statusfel Anger att den aktuella stackramen har varning om kritisk status, till exempel Deadlock.
Status exkluderad Anger den i dödläge låsta noden.
Statusinformation Anger att den aktuella stackramen har ytterligare information, till exempel Väntar på, Väntar på lås, ägs av osv.
Status Blockerad Anger att den aktuella aktiviteten är i blockerat/väntande tillstånd osv.
Status körs Anger den uppgift som körs just nu.

Kontextmenyobjekt

Följande snabbmenyobjekt är tillgängliga när du högerklickar på en metod i Trådar vy eller Uppgifter vy. De sista sex objekten är samma som i fönstret anropsstack.

Skärmbild av snabbmenyn i fönstret Parallella Staplar.

Menyalternativ Beskrivning
Flagga Flaggar det markerade objektet.
Avmarkera Avmarkerar det markerade objektet.
Frys Fryser det markerade föremålet.
Thaw Tinar upp det markerade objektet.
växla till ram Samma som motsvarande menykommando i fönstret Anropsstack. Men i fönstret Parallella staplar kan en metod finnas i flera bildrutor. Du kan välja den ram som du vill använda i undermenyn för det här objektet. Om en av stackramarna finns i den aktuella tråden väljs den ramen som standard i undermenyn.
Gå till Aktivitet eller Gå till tråd Växlar till uppgift eller trådar vy och behåller samma stackram markerad.
gå till källkoden Går till motsvarande plats i källkodsfönstret.
gå till demontering Går till motsvarande plats i fönstret Disassembly.
Visa extern kod Visar eller döljer extern kod.
Hexadecimalt display Växlar mellan decimal och hexadecimal visning.
Visa trådar i källan Flaggar platsen för tråden i källkodsfönstret.
Symbolens Laddningsinformation Öppnar dialogrutan symbolinläsningsinformation.
Symbolinställningar Öppnar dialogrutan symbolinställningar.

Skärmdump av snabbmenyn i fönstret Parallella staplar 2022.

Menyalternativ Beskrivning
Kopiera Kopiera det markerade objektet.
Markera alla rutor under Markerar alla ramar under den valda stacken.
Flagga Flaggar det markerade objektet.
Avmarkera Avmarkerar det markerade objektet.
Frys Fryser det markerade föremålet.
Thaw Tinar upp det markerade objektet.
växla till ram Samma som motsvarande menykommando i fönstret Anropsstack. Men i fönstret Parallella staplar kan en metod finnas i flera bildrutor. Du kan välja den ram som du vill använda i undermenyn för det här objektet. Om en av stackramarna finns i den aktuella tråden väljs den ramen som standard i undermenyn.
Gå till Aktivitet eller Gå till tråd Växlar till uppgift eller trådar vy och behåller samma stackram markerad.
gå till källkoden Går till motsvarande plats i källkodsfönstret.
gå till demontering Går till motsvarande plats i fönstret Disassembly.
Visa extern kod Visar eller döljer extern kod.
Hexadecimalt display Växlar mellan decimal och hexadecimal visning.
Visa trådar i källan Flaggar platsen för tråden i källkodsfönstret.
Symbolens Laddningsinformation Öppnar dialogrutan symbolinläsningsinformation.
Symbolinställningar Öppnar dialogrutan symbolinställningar.

Trådvy

I Trådar-vyn markeras den aktuella trådens stackram och anropssökväg i blått. Trådens aktuella plats visas med den gula pilen.

Om du vill ändra den aktuella stackramen dubbelklickar du på en annan metod. Detta kan också växla den aktuella tråden, beroende på om den metod du väljer är en del av den aktuella tråden eller en annan tråd.

När Trådar visa grafen är för stor för att passa in i fönstret, visas en Fågelperspektiv kontroll i fönstret. Du kan flytta ramen i kontrollen för att navigera till olika delar av diagrammet.

Följande bild visar en tråd som går från Main till en övergång mellan hanterad och intern kod. Sex trådar finns i den aktuella metoden. Två trådar fortsätter till Thread.Sleep och två fortsätter till Console.WriteLine och den aktuella tråden fortsätter till SyncTextWriter.WriteLine.

Skärmbild av trådvyn i fönstret Parallella staplar.

Huvudfunktionerna i vyn Trådar beskrivs i följande tabell:

Callout Elementnamn Beskrivning
1 Anropa stacksegment eller nod Innehåller en serie metoder för en eller flera trådar. Om ramen inte har några pilinjer anslutna till den, visar ramen hela anropssökvägen för tråden/trådarna.
2 Blå markering Anger anropssökvägen för den aktuella tråden.
3 Pillinjer Anslut noder för att skapa hela anropssökvägen för trådarna.
4 Nodrubrik Visar antalet processer och trådar för noden.
5 Metod Representerar en eller flera stack frames i samma metod.
6 Knappbeskrivning för metod Visas när du håller muspekaren över en metod. I vyn Trådar visar knappbeskrivningen alla trådar i en tabell som liknar fönstret Trådar.

Följande bild visar huvudtråden i en övergång mellan hanterad och intern kod. Fem trådar finns i den aktuella metoden. Fyra trådar fortsätter att köras i S.C-metodkontexten, medan en arbetstråd fortsätter i en övergång mellan hanterad till intern kod och anger namnet på en arbetstråd.

Skärmbild av Tråd-vyn i fönstret Parallella staplar 2022.

Huvudfunktionerna i vyn Trådar beskrivs i följande tabell:

Callout Elementnamn Beskrivning
1 Anropa stacksegment eller nod Innehåller en serie metoder för en eller flera trådar. Om ramen inte har några pilinjer anslutna till den, visar ramen hela anropssökvägen för tråden/trådarna.
2 Blå markering Anger anropssökvägen för den aktuella tråden.
3 Pillinjer Anslut noder för att skapa hela anropssökvägen för trådarna.
4 Nodrubrik Visar antalet processer/trådar, trådnamn och tråd-ID för noden.
5 Metod Representerar en eller flera stack frames i samma metod.
6 Knappbeskrivning för metod Visas när du håller muspekaren över en metod. I vyn Trådar visar knappbeskrivningen alla trådar i en tabell som liknar fönstret Trådar.
7 Trådbeskrivning AI-genererad beskrivning av tråden. Från och med Visual Studio 2022 version 17.13 Förhandsversion 1 finns den här beskrivningen när Copilot installeras och aktiveras.

Uppgiftsvy

Om appen använder System.Threading.Tasks.Task objekt (hanterad kod) eller task_handle objekt (intern kod) för att uttrycka parallellitet kan du använda Uppgifter vy. Uppgifter visar anropsstackar av uppgifter istället för trådar i vyn.

I vyn Uppgifter:

  • Anropsstackar med trådar som inte kör uppgifter visas inte.
  • Anropsstackar med trådar som kör uppgifter trimmas visuellt överst och längst ned för att visa de mest relevanta ramarna för aktiviteter.
  • När flera uppgifter finns i en tråd visas anropsstackarna för dessa uppgifter i separata noder.

Om du vill se en hel anropsstack växlar du tillbaka till Trådar genom att högerklicka i en stackram och välja Gå till Tråd.

Följande bild visar vyn Trådar längst upp och motsvarande Uppgifter-vy längst ned.

Skärmbild av vyerna Trådar och Uppgifter.

Hovra över en metod för att visa en knappbeskrivning med ytterligare information. I Uppgifter-vyn visar verktygstipset alla uppgifter i en tabell som liknar fönstret Uppgifter.

Följande bild visar knappbeskrivningen för en metod i vyn Trådar högst upp och i den motsvarande vyn Uppgifter längst ned.

Skärmbild av verktygstips för trådar och uppgifter.

Metodvy

Från antingen vyn Trådar eller vyn Uppgifter kan du pivotera diagrammet på den just nu valda metoden genom att välja ikonen Växla metodvy i verktygsfältet. Metodvy visar snabbt alla metoder på alla trådar som antingen anropar eller anropas av den aktuella metoden. Följande bild visar hur samma information ser ut i Trådar vy till vänster och i metodvy till höger.

Om du växlar till en ny stackram, blir den metoden den aktuella och Metodvy visar alla anropare och anropade för den nya metoden. Detta kan leda till att vissa trådar visas eller försvinner från vyn, beroende på om metoden visas på deras anropsstackar. Om du vill återgå till anropsstacken väljer du ikonen metodvy verktygsfält igen.

Videohandledning för felsökning av trådar och uppgifter med parallella staplar

De här videokurserna visar hur du kan använda vyerna Trådar och uppgifter i fönstret Parallella staplar i Visual Studio 2022 för att felsöka dina flertrådade program.