Dela via


Kontrollera processer och trådar

När du utför felsökning i användarläge aktiverar du, visar, fryser, avfryser, pausar och avaktiverar processer och trådar.

Den aktuella eller aktiva processen är den process som för närvarande felsöks. På samma sätt är den aktuella eller aktiva tråden den tråd som felsökaren för närvarande styr. Åtgärderna för många felsökningskommandon bestäms av identiteten för den aktuella processen och tråden. Den aktuella processen avgör även de virtuella adressmappningar som felsökningsprogrammet använder.

När felsökningen börjar är den aktuella processen den som felsökningsprogrammet är kopplat till eller som orsakade undantaget som bröt sig in i felsökningsprogrammet. På samma sätt är den aktuella tråden den som var aktiv när felsökningsprogrammet kopplades till processen eller som orsakade undantaget. Du kan dock använda felsökningsprogrammet för att ändra den aktuella processen och tråden och för att frysa eller låsa upp enskilda trådar.

Vid felsökning i kernelläge styrs inte processer och trådar av de metoder som beskrivs i det här avsnittet. Mer information om hur processer och trådar manipuleras i kernelläge finns i Ändra kontexter.

Visa processer och trådar

Om du vill visa process- och trådinformation kan du använda följande metoder:

Ange aktuell process och tråd

Om du vill ändra den aktuella processen eller tråden kan du använda följande metoder:

Frysning och upphängning av trådar

Felsökningsprogrammet kan ändra körningen av en tråd genom att pausa tråden eller genom att frysa tråden. Dessa två åtgärder har något olika effekter.

Varje tråd har ett suspenderingsantal som är associerat med den. Om det här antalet är en eller större kör systemet inte tråden. Om antalet är noll eller lägre kör systemet tråden när det är lämpligt.

Vanligtvis har varje tråd en avstängningsräkning på noll. När felsökningsprogrammet ansluter till en process ökar det antalet pauser för alla trådar i den processen med en. Om felsökningsprogrammet kopplar från processen minskar det alla indrag med ett. När felsökningsprogrammet kör processen minskar den tillfälligt alla pausantal med en.

Du kan styra antalet pausade trådar från felsökningsprogrammet med hjälp av följande metoder:

Den vanligaste användningen för dessa kommandon är att öka suspenderingsantalet för en specifik tråd från ett till två. När avlusaren exekverar eller kopplas bort från processen, har tråden sedan en suspenderingsräknare på ett och förblir suspenderad, även om andra trådar i processen exekverar.

Du kan pausa trådar även när du utför icke-invasiv felsökning.

Felsökningsprogrammet kan också frysa en tråd. Den här åtgärden liknar att pausa tråden på vissa sätt. "frozen" är dock bara en felsökningsinställning. Ingenting i Windows-operativsystemet känner igen att något är annorlunda med den här tråden.

Som standardinställning är alla trådar ofrysta. När felsökningsprogrammet gör att en process körs, körs inte trådar som är frusna. Men om felsökningsprogrammet kopplar från processen frigörs alla trådar.

Om du vill låsa och låsa upp enskilda trådar kan du använda följande metoder:

I vilket fall som helst körs inte trådar som tillhör målprocessen när felsökningsprogrammet har brutit sig in i målet. Antalet pausningar av en tråd påverkar trådens beteende bara när felsökningsprogrammet kör processen eller frånkopplar. Den låsta statusen påverkar endast trådens beteende när felsökningsprogrammet kör processen.

Trådar och processer i andra kommandon

Du kan lägga till trådspecificerare eller processspecificerare före många andra kommandon. Mer information finns i de enskilda kommandoavsnitten.

Du kan lägga till kvalificeraren ~e (Thread-Specific Command) före många kommandon och tilläggskommandon. Den här kvalificeraren gör att kommandot körs med avseende på den angivna tråden. Den här kvalificeraren är särskilt användbar om du vill tillämpa ett kommando på mer än en tråd. Följande kommando upprepar till exempel kommandot !gle-tillägget för varje tråd som debuggas.

~*e !gle 

Flera system

Felsökningsprogrammet kan ansluta till flera målobjekt samtidigt. När dessa processer inkluderar dumpfiler eller inkluderar livemål på mer än en dator refererar felsökningsprogrammet till ett system, en process och en tråd för varje åtgärd. Mer information om den här typen av felsökning finns i Felsöka flera mål.