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:
Trådvyn visar anropsstackinformation för alla trådar i appen. Du kan navigera mellan trådar och stackramar i dessa trådar.
vyn Uppgifter visar information om uppgiftscentrerade samtalsstackar.
- I hanterad kod visar vyn Uppgifter anropsstackar med System.Threading.Tasks.Task objekt.
- I ursprunglig kod visar vyn Uppgifter anropsstackar med aktivitetsgrupper, parallella algoritmer, asynkrona agenteroch lätta uppgifter.
-metodvyn pivoterar anropsstacken på en vald metod.
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:
Ikon | Kontroll | Beskrivning |
---|---|---|
Kombinationsrutan ![]() |
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 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. |
![]() |
Växla metodvy | Växlar mellan vyer för anropsstack och metodvy. Mer information finns i Metodvy. |
![]() |
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 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. |
Ikon | Kontroll | Beskrivning |
---|---|---|
Kombinationsrutan ![]() |
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. |
![]() |
filtrera kontroll | Visar endast anropsstackar för den specifika uppsättning trådar som du är intresserad av. |
![]() |
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. |
![]() |
Växla metodvy | Växlar mellan vyer för anropsstack och metodvy. Mer information finns i Metodvy. |
![]() |
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 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ö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 kontroll | Gör att du kan spara/exportera innehållet från det parallella stackfönstret som en bild. |
![]() |
Visa extern kodstyrning | Med den här funktionen kan du visa/dölja staplarna från den externa koden/biblioteken. |
![]() |
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 |
---|---|
![]() |
Anger den aktuella platsen (aktiv stackram) för den aktuella tråden. |
![]() |
Anger den aktuella platsen (aktiv stackram) för en icke-aktuell tråd. |
![]() |
Anger den aktuella stackramen (den aktuella felsökningskontexten). Metodnamnet är fetstil oavsett var det visas. |
Ikon | Beskrivning |
---|---|
![]() |
Anger den aktuella platsen (aktiv stackram) för den aktuella tråden. |
![]() |
Anger den aktuella platsen (aktiv stackram) för en icke-aktuell tråd. |
![]() |
Anger den aktuella stackramen (den aktuella felsökningskontexten). Metodnamnet är fetstil oavsett var det visas. |
![]() |
Anger att den aktuella stackramen har varning om kritisk status, till exempel Deadlock. |
![]() |
Anger den i dödläge låsta noden. |
![]() |
Anger att den aktuella stackramen har ytterligare information, till exempel Väntar på, Väntar på lås, ägs av osv. |
![]() |
Anger att den aktuella aktiviteten är i blockerat/väntande tillstånd osv. |
![]() |
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.
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. |
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.
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.
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.
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.
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.