Kommentar
Å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
EventPipespårning som tillhandahålls av .NET Core-körtiden.
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 symbolisera | 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 varifrån stacken ska rapporteras.
-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 du kommandot dotnet-stack ps. 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ägar till flera kataloger med assembly 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 staplar som hanteras med dotnet-stack
För att rapportera hanterade staplar med dotnet-stack:
Hämta processidentifieraren (PID) för .NET Core-programmet för rapportering av stackar.
- 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[])dotnet-stackgenererar utdata i följande form:- Kommentarer i utdata är försedda med prefixet
#. - 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 är försedda med prefixet
Kommentar
Det kan ta lång tid att stoppa processen (upp till flera minuter) för mycket stora program. Körmiljön måste skicka över typ- och metodinformationen för all hanterad kod som har samlats in för att lösa funktionsnamn.