Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel is van toepassing op: ✔️ dotnet-stack versie 5.0.221401 en nieuwere versies
Installeren
Er zijn twee manieren om te downloaden en installeren dotnet-stack:
dotnet global tool:
Als u de nieuwste versie van het NuGet-pakket wilt installeren, gebruikt u de installatieopdracht van het
dotnet-stackdotnet-hulpprogramma:dotnet tool install --global dotnet-stackDirecte download:
Download het uitvoerbare hulpprogramma dat overeenkomt met uw platform:
Besturingssysteem Platvorm Ramen x86 | x64 | Arm | Arm-x64 Linux x64 | Arm | Arm64 | musl-x64 | musl-Arm64
Samenvatting
dotnet-stack [-h, --help] [--version] <command>
Beschrijving
Het dotnet-stack hulpprogramma:
- Is een platformoverschrijdend .NET Core-hulpprogramma.
- Hiermee worden de beheerde stacks vastgelegd en afgedrukt voor alle threads in het .NET-doelproces.
-
EventPipeMaakt gebruik van tracering die wordt geleverd door de .NET Core-runtime.
Opties
-h|--helpToont opdrachtregelhulp.
--versionGeeft de versie van het hulpprogramma dotnet-stack weer.
Opdrachten
| Opdracht | Beschrijving |
|---|---|
| dotnet stack rapport | Print de stacktrace voor elke thread in het doelproces af. |
| dotnet-stack ps | Somt de dotnet-processen op waarvan stacktraces kunnen worden verzameld. |
| dotnet-stack symbolicate | Haal het regelnummer op uit het methodetoken en IL-offset in een stacktrace. |
dotnet-stack-rapport
Hiermee wordt de stacktrace van elke thread in het doelproces afgedrukt.
Samenvatting
dotnet-stack report -p|--process-id <pid>
-n|--name <process-name>
[-h|--help]
Opties
-n, --name <name>De naam van het proces waaruit de stack gerapporteerd moet worden.
-p|--process-id <PID>De proces-id waarvan de stack moet worden gerapporteerd.
dotnet-stack ps
Geeft een lijst weer van de dotnet-processen waarvan stack-traces kunnen worden verzameld.
dotnet-stack versie 6.0.320703 en latere versies geven ook de opdrachtregelargumenten weer waarmee elk proces is gestart, indien beschikbaar.
Samenvatting
dotnet-stack ps [-h|--help]
Voorbeeld
Stel dat u een langlopende app start met behulp van de opdracht dotnet run --configuration Release. In een ander venster voert u de dotnet-stack ps opdracht uit. De uitvoer die u ziet, is als volgt. De opdrachtregelargumenten, indien aanwezig, worden weergegeven in dotnet-stack versie 6.0.320703 en hoger.
> dotnet-stack ps
21932 dotnet C:\Program Files\dotnet\dotnet.exe run --configuration Release
36656 dotnet C:\Program Files\dotnet\dotnet.exe
dotnet-stack symboliseren
Haal het regelnummer op uit het methodetoken en IL-offset in een stacktrace.
Samenvatting
dotnet-stack symbolicate <input-path> [-d|--search-dir] [-o|--output] [-c|--stdout] [-h|--help]
Opties
-d, --search-dir <directory1 directory2 ...>Pad naar meerdere mappen met assembly en pdb.
-o, --output <output-path>Uitvoer rechtstreeks naar een bestand.
-c, --stdoutUitvoer rechtstreeks naar een console.
Voorbeeld
> 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
Beheerde stacks rapporteren met dotnet-stack
Beheerde stacks rapporteren met behulp van dotnet-stack:
Haal de proces-id (PID) van de .NET Core-toepassing op waaruit stacks moeten worden gerapporteerd.
- In Windows kunt u bijvoorbeeld Taakbeheer of de
tasklistopdracht gebruiken. - In Linux bijvoorbeeld de
psopdracht. - dotnet-stack ps
- In Windows kunt u bijvoorbeeld Taakbeheer of de
Voer de volgende opdracht uit:
dotnet-stack report --process-id <PID>Met de voorgaande opdracht wordt uitvoer gegenereerd die vergelijkbaar is met de volgende:
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[])De uitvoer van
dotnet-stackvolgt de volgende vorm:- Opmerkingen in de uitvoer worden voorafgegaan door
#. - Elke thread heeft een header die de systeemeigen thread-id bevat:
Thread (<thread-id>):. - Stackframes volgen de vorm
Module!Method. - Overgangen naar onbeheerde code worden weergegeven als
[Native Frames]in de uitvoer.
# comment Thread (0x1234): module!Method module!Method Thread (0x5678): [Native Frames] Module!Method Module!Method- Opmerkingen in de uitvoer worden voorafgegaan door
Notitie
Het stoppen van het proces kan lang duren (maximaal enkele minuten) voor zeer grote toepassingen. De runtime moet de type- en methode-informatie verzenden voor alle beheerde code die is vastgelegd om de functienamen te bepalen.