Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln gäller för: ✔️ dotnet-stack version 5.0.221401 och senare versioner
Installera
Det finns två sätt att ladda ned och installera dotnet-stack:
dotnet global tool:
Om du vill installera den senaste versionen av
dotnet-stackNuGet-paketet använder du installationskommandot för dotnet-verktyget:dotnet tool install --global dotnet-stackDirekt nedladdning:
Ladda ned det körbara verktyget som matchar din plattform:
Olympiska Spelen (OS) Plattform Windows x86 | x64 | Arm | Arm-x64 Linux x64 | Arm | Arm64 | musl-x64 | musl-Arm64
Sammanfattning
dotnet-stack [-h, --help] [--version] <command>
beskrivning
Verktyget dotnet-stack :
- Är ett plattformsoberoende .NET Core-verktyg.
- Samlar in och skriver ut de hanterade staplarna för alla trådar i .NET-målprocessen.
- Använder spårning som tillhandahålls
EventPipeav .NET Core-körningen.
Alternativ
-h|--helpVisar kommandoradshjälp.
--versionVisar versionen av verktyget dotnet-stack.
Kommandon
| Kommando | beskrivning |
|---|---|
| dotnet-stack-rapport | Skriver ut stackspårningen för varje tråd i målprocessen. |
| dotnet-stack ps | Visar en lista över de dotnet-processer som stackspårningar kan samlas in från. |
| dotnet-stack symboliskt | Hämta radnumret från metodtoken och IL-förskjutningen i en stacktrace. |
dotnet-stack-rapport
Skriver ut stackspårningen för varje tråd i målprocessen.
Sammanfattning
dotnet-stack report -p|--process-id <pid>
-n|--name <process-name>
[-h|--help]
Alternativ
-n, --name <name>Namnet på den process som stacken ska rapporteras från.
-p|--process-id <PID>Process-ID:t som stacken ska rapporteras från.
dotnet-stack ps
Visar en lista över de dotnet-processer som stackspårningar kan samlas in från.
dotnet-stack Version 6.0.320703 och senare versioner visar även de kommandoradsargument som varje process startades med, om den är tillgänglig.
Sammanfattning
dotnet-stack ps [-h|--help]
Exempel
Anta att du startar en tidskrävande app med kommandot dotnet run --configuration Release. I ett annat fönster kör dotnet-stack ps du kommandot . Utdata visas på följande sätt. Eventuella kommandoradsargument visas i dotnet-stack version 6.0.320703 och senare.
> dotnet-stack ps
21932 dotnet C:\Program Files\dotnet\dotnet.exe run --configuration Release
36656 dotnet C:\Program Files\dotnet\dotnet.exe
dotnet-stack symboliskt
Hämta radnumret från metodtoken och IL-förskjutningen i en stacktrace.
Sammanfattning
dotnet-stack symbolicate <input-path> [-d|--search-dir] [-o|--output] [-c|--stdout] [-h|--help]
Alternativ
-d, --search-dir <directory1 directory2 ...>Sökväg för flera kataloger med sammansättning och pdb.
-o, --output <output-path>Utdata direkt till en fil.
-c, --stdoutUtdata direkt till en konsol.
Exempel
> cat stack.trace
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at DotnetStackSymbolicate.App.MethodA() in DotnetStackSymbolicate.dll:token 0x6000002+0x6
at DotnetStackSymbolicate.App..ctor() in DotnetStackSymbolicate.dll:token 0x6000003+0x51
at DotnetStackSymbolicate.Program.OnCreate() in DotnetStackSymbolicate.Tizen.dll:token 0x6000001+0x8
onSigabrt called
>
> dotnet-stack symbolicate stack.trace --stdout
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at DotnetStackSymbolicate.App.MethodA() in C:\DotnetStackSymbolicate\DotnetStackSymbolicate.cs:line 19
at DotnetStackSymbolicate.App..ctor() in C:\DotnetStackSymbolicate\DotnetStackSymbolicate.cs:line 38
at DotnetStackSymbolicate.Program.OnCreate() in C:\DotnetStackSymbolicate.Tizen\DotnetStackSymbolicate.Tizen.cs:line 12
onSigabrt called
Output: stack.trace.symbolicated
Rapportera hanterade staplar med dotnet-stack
Så här rapporterar du hanterade staplar med :dotnet-stack
Hämta processidentifieraren (PID) för .NET Core-programmet att rapportera stackar från.
- I Windows kan du till exempel använda Aktivitetshanteraren eller
tasklistkommandot. - I Linux, till exempel
pskommandot. - dotnet-stack ps
- I Windows kan du till exempel använda Aktivitetshanteraren eller
Kör följande kommando:
dotnet-stack report --process-id <PID>Föregående kommando genererar utdata som liknar följande:
Thread (0x48839B): [Native Frames] System.Console!System.IO.StdInReader.ReadKey(bool&) System.Console!System.IO.SyncTextReader.ReadKey(bool&) System.Console!System.ConsolePal.ReadKey(bool) System.Console!System.Console.ReadKey() StackTracee!Tracee.Program.Main(class System.String[])Utdata
dotnet-stackfrån följer följande formulär:- Kommentarer i utdata prefixet med
#. - Varje tråd har en rubrik som innehåller det interna tråd-ID:t:
Thread (<thread-id>):. - Stackramar följer formuläret
Module!Method. - Övergångar till ohanterad kod representeras som
[Native Frames]i utdata.
# comment Thread (0x1234): module!Method module!Method Thread (0x5678): [Native Frames] Module!Method Module!Method- Kommentarer i utdata prefixet med
Kommentar
Det kan ta lång tid att stoppa processen (upp till flera minuter) för mycket stora program. Körningen måste skicka över typ- och metodinformationen för all hanterad kod som har samlats in för att matcha funktionsnamn.