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 perspektiv:
Trådvyn visar information om anropsstacken för alla trådar i applikationen. Du kan navigera mellan trådar och stackramar i dessa trådar.
uppgiftsvyn visar information om uppgiftscentrerade samtalsstackar.
- I hanterad kod visar vyn Uppgiftshanterare anropsstackarna för System.Threading.Tasks.Task objekt.
- I inbyggd kod visar vyn Uppgifter anropsstackar för 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 felsökningssession. Välj Felsöka>Windows>Parallella staplar.
Verktygsfältskontroller
Fönstret Parallella staplar har följande verktygsfältskontroller:
Ikon | Kontroll | Beskrivning |
---|---|---|
kombinationsruta | Trådar/Uppgifter kombinationsruta | Växlar vyn mellan anropsstackar med trådar och anropsstackar med uppgifter. Mer information finns i Uppgifter-vyn och Trådar-vyn. |
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 Vy för metod | Växlar mellan anropsstacksvyer och metodvy. Mer information finns i Metodvy. | |
Rulla automatiskt till aktuell stackram | Autoscrolls 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. För mer information, se vyn Uppgifter och vyn Trådar. |
Filter 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 vyerna för anropsstacken och metodvyn . Mer information finns i Metodvy. | |
Rulla automatiskt till aktuell stackram | Rullar automatiskt grafen så att den aktuella stackramen är synlig. 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 kodkontroll | Med den här funktionen kan du visa/dölja staplarna från den externa koden/biblioteken. |
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. | |
Ikon för Trådar | 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 noden i dödläge. | |
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. |
Snabbmenyobjekt
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 desamma som i fönstret anropsstack.
Menyalternativ | Beskrivning |
---|---|
Flagga | Flaggar det markerade objektet. |
Avmarkera | Avmarkerar det valda objektet. |
Frysa | Låser det markerade objektet. |
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 aktivitet eller trådar vy och hå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älla | Flaggar platsen för tråden i källkodsfönstret. |
Symbolinläsningsinformation | Öppnar dialogrutan för symbolinläsningsinformation. |
Symbolinställningar | Öppnar dialogrutan Symbolinställningar. |
Menyobjekt | Beskrivning |
---|---|
Kopiera | Kopiera det markerade objektet. |
Markera alla rutor nedan | Markerar alla ramar under den valda stacken. |
Flagga | Flaggar det markerade objektet. |
Avmarkera | Tar bort flaggningen från det markerade objektet. |
Frys | Låser det markerade objektet. |
Tö | Tinar upp det markerade objektet. |
växla till ram | Samma som motsvarande menykommando i fönstret anropsstacken. 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 håller samma stackram markerad. |
gå till källkoden | Går till motsvarande plats i källkodsfönstret. |
gå till nedmontering | Går till motsvarande plats i fönstret Disassembly. |
Visa extern kod | Visar eller döljer extern kod. |
Hexadecimal skärm | Växlar mellan decimal och hexadecimal visning. |
Visa trådar i källa | Flaggar platsen för tråden i källkodsfönstret. |
Information om symbolbelastning | Öppnar dialogrutan för , symbolinläsningsinformation,. |
Symbolinställningar | Öppnar dialogrutan Symbolinställningar. |
Trådvy
I vyn Trådar markeras stackram och anropsväg för den aktuella tråden med blå färg. 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 grafen för Trådar är för stor för att passa in i fönstret, visas en kontrollpanel för Fågelperspektiv 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.
I följande tabell beskrivs huvudfunktionerna i vyn Trådar:
Callout | Elementnamn | Beskrivning |
---|---|---|
1 | Del av anropsstack eller nod | Innehåller en serie metoder för en eller flera trådar. Om ramen inte har några pillinjer visar ramen hela anropssökvägen för tråd(en). |
2 | Blå markering | Anger anropssökvägen för den aktuella tråden. |
3 | Pilinjer | 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 stackramar i samma metod. |
6 | Knappbeskrivning för metod | Visas när du för muspekaren över en metod. I vy Trådar visar verktygstipset 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.
Följande tabell beskriver huvudfunktionerna i Trådar-vyn:
Callout | Elementnamn | Beskrivning |
---|---|---|
1 | Anropsstacksegment eller nod | Innehåller en serie metoder för en eller flera trådar. Om ramen inte har några kopplade pil-linjer visar ramen hela anropssökvägen för tråd(ar). |
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 stackramar inom samma metod. |
6 | Knappbeskrivning för metod | Visar när du för pekaren över en metod. I Trådar-vyn visar verktygstipset alla trådar i en tabell som liknar den i Trådar-fönstret. |
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 vyn visar anropsstackar med uppgifter i stället för trådar.
I vyn Uppgifter:
- Anropsstackar med trådar som inte utför några 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 överst och motsvarande Uppgifter vy längst ned.
Hovra över en metod för att visa en knappbeskrivning med ytterligare information. I vyn Uppgifter visar knappbeskrivningen alla aktiviteter i en tabell som liknar fönstret Uppgifter.
Följande bild visar knappbeskrivningen för en metod i vyn Trådar överst och för motsvarande Uppgifter vy längst ned.
Metodvy
Från antingen vyn Trådar eller vyn Uppgifter kan du vrida diagrammet utifrån den nuvarande metoden genom att välja ikonen Växla metodvy i verktygsfältet. Metodvy visar med en överblick 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 gör du den metoden till den aktuella metoden och Metodvy visar alla anropare och mottagare 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.
Självstudie om 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.