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.

Analysera tabellen i fönstret Trådar

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. Markera flaggan (ikonfärgen ändras till röd) för att markera eller ta bort markering på (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 Flagg- och unflag-trådar.
Aktuell tråd Synlig, omärkt Den gula pilikonen i den här kolumnen anger den aktuella tråden i programmet som körs i felsökaren. En pilkontursikon i den här kolumnen visar den aktuella felsökningskontexten för en tråd som inte är aktuell.
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].
Lokalisering Synlig Visar var tråden körs i programanropsstacken. Välj 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 företrädet 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 upphävt antal Dold Anger det upphävda antalet. Det här antalet avgör om en tråd kan köras. Mer information finns i Frysa och tina trådar.
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.
Transportkvalificerare 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. Mer information finns i Flagg- och avflagga-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 fryser en tråd i hanterad kod är det avbrutna tillståndets antal 1. När du låser en tråd i inbyggd kod är antalet pausade 0, såvida du inte använder SuspendThread-anropet.

Not

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 utförande för valda trådar

Du kan låsa eller tina körningen av en eller flera trådar. I fönstret Trådar väljer du de trådar för vilka du vill uppdatera exekveringstillståndet. I verktygsfältet Trådar väljer du Frys trådar (pause-ikonen) 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 pilikon i tabellfönstret Trådar visar den aktuella tråden (och platsen för körningspekaren). Den ursprungliga aktuella trådmarkören, som visas med en pilkonturikon, finns också kvar.

En gul pilikon i tabellfönstret Trådar visar den aktuella tråden (och körpekarens plats). En grön pilikon med en krökt svans anger att en tråd som inte är aktuell 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 pilikonen expandera/dölj för en grupp för att visa eller dölja medlemmarna i den aktuella 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 komprimera 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 genomsöker också trådpositionen 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 väljer 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ök (listobjektsikon) i verktygsfältet i fönstret 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 expandera/dölj 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).