Dela via


Visa trådar i Visual Studio-felsökningsprogrammet (C#, Visual Basic, C++)

I fönstret Trådar i Visual Studio-felsökningsprogrammet kan du undersöka och arbeta med trådar i programmet som du felsöker. Fönstret innehåller funktioner för att gruppera, sortera, flagga, frysa, tina och söka efter trådar i koden och visa samtalsstackar.

Fönstret Trådar är endast tillgängligt när Visual Studio-felsökningsprogrammet körs. Under en felsökningssession kan du öppna fönstret genom att välja Felsöka>Windows>Trådar.

Den här artikeln beskriver hur du arbetar med fönstret Trådar för dina C#-, Visual Basic- eller C++-program. Om du vill ha stegvis vägledning om hur du använder fönstret Trådar kan du läsa Genomgång: Felsöka med hjälp av fönstret Trådar.

Utforska tabellen Trådar i fönstret

Fönstret Trådar visar en tabell där varje rad motsvarar en separat tråd i programmet. I standardvyn visar tabellen alla trådar i ditt program. Du kan konfigurera tabellinställningarna så att endast de trådar som intresserar dig visas. Tabellen innehåller flera kolumner för att beskriva trådarna i detalj. Du kan justera kolumnplaceringen och dölja onödiga kolumner.

I följande tabell beskrivs alla tillgängliga kolumner för Trådar fönstertabell och anger om kolumnen är synlig eller dold i standardvyn. Kolumnerna visas enligt deras standardtabellposition från vänster till höger.

Kolumn Standard Beskrivning
Flagga Synlig, omärkt Röda flaggor i den här kolumnen anger trådar som har markerats för särskild uppmärksamhet. Välj flaggan (ikonfärgen ändras till röd) för att markera eller avmarkera (ikonen ändras till konturen av flaggan) en tråd. Den färgade flaggikonen hjälper till att skilja en markerad tråd från andra trådar i tabellen. Mer information finns i Flaggade och oflaggade trådar.
Aktuell tråd Synlig, omärkt Den gula pilikonen i den här kolumnen indikerar den aktuella tråden i programmet som körs i felsökningsprogrammet. En ikon med pil i den här kolumnen anger felsökningskontexten för en icke-aktiv tråd.
ID Synlig Anger identifieringsnumret för varje tråd.
hanterat ID Synlig Visar hanterade identifieringsnummer för hanterade trådar.
kategori Synlig Anger kategorin trådar som antingen användargränssnittstrådar, fjärrproceduranropshanterare eller arbetstrådar. En särskild kategori identifierar programmets huvudtråd.
Namn Synlig Identifierar varje tråd med dess namn eller <Inget namn> om tråden inte har något angivet namn. När en tråd inte längre finns har tråden etiketten [Thread Destroyed].
plats Synlig Visar var tråden körs i programanropsstacken. Klicka på listrutepilen för att se den fullständiga anropsstacken för tråden. När en tråd inte längre finns är platsen märkt som <inte tillgänglig>.
Prioritet Dold Visar prioriteten eller rangordningen som tilldelas av systemet till varje tråd.
tillhörighetsmask Dold Visar processortillhörighetsmasken för varje tråd. I ett system med flera processorer avgör tillhörighetsmasken de processorer som en tråd kan köras på.
Tillfälligt avstängt antal Dold Anger det inaktiverade antalet. Det här antalet avgör om en tråd kan köras. Mer information finns i Frys och upptiningsprocesser.
Processnamn Dold Visar den process som varje tråd tillhör. Data i den här kolumnen kan vara användbara när du felsöker många processer.
process-id Dold Visar det process-ID som varje tråd tillhör.
Transport Qualifier Dold Identifierar unikt den dator som felsökningsprogrammet är anslutet till.

Visa och dölj tabellkolumner

I verktygsfältet Trådar visar listrutan Kolumner listan över tillgängliga kolumner. Expandera listrutan och välj ett kolumnnamn för att ändra dess synlighet i tabellen. Synliga kolumner visas med en bockmarkering i listan.

Flagga trådar för särskild uppmärksamhet

Använd flaggikonen för att markera trådar för särskild uppmärksamhet. Markerade trådar visas med en röd flaggikon i fönstret Trådar fönstertabell. Mer information finns i Flaggning och avflaggning av trådar.

Visa endast flaggade trådar

Du kan filtrera fönstret Trådar så att endast flaggade trådar visas. I verktygsfältet Trådar väljer du Visa endast flaggade trådar (dubbel flaggikon). Du kan också använda kortkommandot Ctrl + 9. Den här åtgärden är endast tillgänglig när det finns flaggade trådar.

Lås och tina trådar

När du låser en tråd startar inte systemet körningen av tråden, även om resurser är tillgängliga.

I intern kod kan du pausa eller återuppta trådar genom att anropa Windows-funktionerna SuspendThread och ResumeThread. Du kan också anropa MFC-funktionerna CWinThread::SuspendThread och CWinThread::ResumeThread. Om du anropar funktionen SuspendThread eller ResumeThread ändras det pausade antalet som visas i fönstret Trådar. Det pausade antalet ändras inte om du låser eller tinar en intern tråd. En tråd kan inte köras i intern kod om inte tråden tinas upp och har ett tillfälligt antal noll.

I hanterad kod ändras det pausade antalet när du låser eller tinar upp en tråd. Om du låser en tråd i hanterad kod är antalet pausade 1. När du fryser en tråd i inbyggd kod är dess pausantal 0, såvida du inte använder SuspendThread-anropet.

Anteckning

När du felsöker ett anrop från inbyggd kod till hanterad kod körs den hanterade koden i samma fysiska tråd som den anropande interna koden. Om den inbyggda tråden pausas eller fryss låses även den hanterade koden.

Ändra exekvering för valda trådar

Du kan frysa eller tina exekveringen av en eller flera trådar. I fönstret Trådar väljer du de trådar som du vill uppdatera körningstillståndet för. I verktygsfältet Trådar väljer du Frys trådar (pausapekon) eller Tina trådar (grön spelikon). Åtgärden gäller endast för de markerade trådarna. Åtgärderna för att frysa och tina är också tillgängliga på snabbmenyn för varje tråd.

Ändra den aktuella tråden

En gul pil-ikon i fönstret Trådar visar den aktuella tråden (och platsen där körningspekaren finns). Den ursprungliga aktuella trådmarkören finns också kvar (visas med en pilkontursikon).

En gul pil-ikon i fönstret Trådar visar den aktuella tråden (och platsen där körningspekaren finns). En grön pilikon med en kladdig svans anger att en icke-aktuell tråd har den aktuella felsökningskontexten.

Växla till en annan tråd

Det finns två sätt att växla den aktuella tråden i felsökningsprogrammet. Dubbelklicka på valfri tråd i Trådar fönstertabell för att göra den till den aktuella tråden. Du kan också högerklicka på en tråd och välja Växla till tråd.

Tillämpa gruppering och sortering på trådar

Du kan gruppera trådar i Trådar fönstertabell med samma villkor som de tillgängliga kolumnerna. Alla kriterier är alltid tillgängliga för gruppering, oavsett om motsvarande kolumn visas i den aktuella vyn. Du kan bara välja en gruppering för tabellen.

När du grupperar trådar visas en rubrik i tabellen för varje grupp. Rubriken innehåller en gruppbeskrivning tillsammans med antalet medlemmar i gruppen. Om du grupperar efter Namnkan du se grupper med rubriker som Worker Thread eller Unflagged Threads. En expandera/dölj pilikon visas bredvid varje grupprubrik.

När du har tillämpat ett grupperingsvillkor uppdateras vyn för Trådar fönstertabellen för att visa medlemstrådarna för varje grupp under rubriken. Använd ikonen med pil för att expandera eller dölja för gruppen för att visa eller dölja medlemmarna i den nuvarande vyn.

Du kan också använda ett enda sorteringsvillkor för trådarna i Threads-fönstertabellen. Gruppering har företräde framför sortering. Du kan till exempel gruppera trådar efter Kategori och sedan sortera dem efter ID inom varje Kategori.

Gruppera trådar i tabellen

I verktygsfältet Trådar expanderar du listrutan Gruppera efter och väljer kriterierna för att gruppera trådarna. Du kan också ta bort den tillämpade gruppering genom att välja Ingen i listrutan Gruppera efter.

Sortera trådar i tabellen

Du använder sortering på trådar i fönstret Trådar genom att välja kolumnrubrikerna överst i tabellen, till exempel Namn eller ID.

När du väljer en kolumnrubrik uppdateras vyn för Trådar fönstertabellen för att visa trådarna sorterade efter värdena i den valda kolumnen. Den markerade kolumnen visar också en uppåt-/nedåtpilikon. Uppåtpilsikonen anger sortering efter den valda kolumnen i stigande ordning. Nedåtpilsikonen anger sortering efter den markerade kolumnen i fallande ordning. Välj kolumnrubriken för att ändra sorteringsordningen.

Sortera trådar i grupper

Om du vill sortera trådar i grupper i fönstret Trådar använder du först listrutan Gruppera efter för att tillämpa grupperingsvillkoren. Välj sedan kolumnrubriken för att sortera de grupperade trådarna efter värdena i den valda kolumnen.

Expandera eller dölj alla grupper

Det finns ett snabbt sätt att visa eller dölja alla grupper i den aktuella vyn. I verktygsfältet Trådar väljer du Expandera grupper (dubbel ruta med plussymbol) eller Dölj grupper (dubbel ruta med minussymbol).

Sök efter trådar

Du kan söka i trådarna i Trådar fönstertabell och leta efter specifikt innehåll i någon av de synliga tabellkolumnerna. När du gör sökningen visar Visual Studio de trådrader som har kolumndata som matchar söksträngen. Sökningen söker också igenom den trådposition som visas överst i anropsstacken i kolumnen Plats.

Sök efter specifikt innehåll i trådar

Det finns flera sätt att söka efter specifikt innehåll i trådar. I verktygsfältet Trådar anger du strängen som du vill söka efter i rutan Sök och trycker på Retur. Du kan ange bokstäver, siffror och specialtecken som < i söksträngen. När sökningen är klar uppdaterar fönstret Trådar tabellen för att visa trådar med matchande resultat. Visual Studio visar de specifika instanser som matchar din söksträng. Om du vill återgå till den vanliga trådvyn väljer du X-ikonen bredvid rutan Sök.

Du kan också söka efter en sträng som du tidigare har letat efter. Använd listrutan Sök och välj en tidigare söksträng.

Sök i hela anropsstacken

Som standard söks inte hela anropsstacken. Visual Studio söker bara efter en matchning i trådarna som visas i Trådar fönstertabell.

Du kan inkludera den fullständiga anropsstacken genom att välja Inkludera anropsstackar i sökningen (listobjektikonen) i fönsterverktygsfältet Trådar. När alternativet är aktiverat har listobjektikonen en kantlinje.

Visa anropsstackar och växla mellan bildrutor

I ett flertrådat program har varje tråd en egen anropsstack. Fönstret Trådar är ett bekvämt sätt att visa dessa staplar.

Tips

För en visuell representation av anropsstacken för varje tråd använder du fönstret Parallel Stacks.

Visa anropsstack för tråd

Leta upp den tråd som du vill undersöka hela anropsstacken för i fönstret Trådar fönstertabellen. I kolumnen Plats väljer du pilen för att expandera/dölja till vänster om trådplatsen. Platsen expanderas för att visa den fullständiga anropsstacken för tråden. Välj pilen igen om du bara vill visa platsen.

Visa eller dölj alla anropsstackar

Du kan styra om fönstret Trådar alltid visar de fullständiga anropsstackarna för alla trådar i tabellen. I verktygsfältet Trådar väljer du Expandera anropsstackar (lådikon med plussymbol) eller Dölj anropsstackar (rutaikon med minussymbol).