Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale şunlar için geçerlidir: ✔️ dotnet-stack sürüm 5.0.221401 ve sonraki sürümler
Yükleme
İndirmenin ve yüklemenin dotnet-stackiki yolu vardır:
dotnet genel aracı:
NuGet paketinin en son sürüm sürümünü
dotnet-stackyüklemek için dotnet tool install komutunu kullanın:dotnet tool install --global dotnet-stackDoğrudan indirme:
Platformunuzla eşleşen araç yürütülebilir dosyasını indirin:
işletim sistemi Platforma Windows x86 | x64 | Arm | Arm-x64 Linux işletim sistemi x64 | Arm | Arm64 | musl-x64 | musl-Arm64
Özet
dotnet-stack [-h, --help] [--version] <command>
Açıklama
Araç dotnet-stack :
- Platformlar arası bir .NET Core aracıdır.
- Hedef .NET işlemindeki tüm iş parçacıkları için yönetilen yığınları yakalar ve yazdırır.
-
EventPipe.NET Core çalışma zamanı tarafından sağlanan izlemeyi kullanır.
Seçenekler
-h|--helpKomut satırı yardımlarını gösterir.
--versiondotnet-stack yardımcı programının sürümünü görüntüler.
Komutlar
| Komut | Açıklama |
|---|---|
| dotnet-stack raporu | Hedef işlemdeki her iş parçacığı için yığın izlemesini yazdırır. |
| dotnet-stack ps | İzlemelerin toplandığı dotnet işlemlerini listeler. |
| dotnet-stack semboller aracılığıyla çözümleme | Bir yığın içindeki Yöntem Belirteci ve IL Uzaklığı'ndan satır numarasını alın. |
dotnet-stack raporu
Hedef işlemdeki her iş parçacığı için yığın izlemesini yazdırır.
Özet
dotnet-stack report -p|--process-id <pid>
-n|--name <process-name>
[-h|--help]
Seçenekler
-n, --name <name>Yığını raporlama işleminin adı.
-p|--process-id <PID>Yığını raporlamak için işlem kimliği.
dotnet-stack ps
İzlemelerin toplandığı dotnet işlemlerini listeler.
dotnet-stack sürüm 6.0.320703 ve sonraki sürümler, varsa her işlemin başlatıldığı komut satırı bağımsız değişkenlerini de görüntüler.
Özet
dotnet-stack ps [-h|--help]
Örnek
komutunu dotnet run --configuration Releasekullanarak uzun süre çalışan bir uygulama başlattığınızı varsayalım. Başka bir pencerede komutunu çalıştırırsınız dotnet-stack ps . Göreceğiniz çıkış aşağıdaki gibidir. Varsa, komut satırı bağımsız değişkenleri 6.0.320703 ve sonraki sürümlerde dotnet-stack gösterilir.
> dotnet-stack ps
21932 dotnet C:\Program Files\dotnet\dotnet.exe run --configuration Release
36656 dotnet C:\Program Files\dotnet\dotnet.exe
dotnet-stack sembolleme
Bir yığın içindeki Yöntem Belirteci ve IL Uzaklığı'ndan satır numarasını alın.
Özet
dotnet-stack symbolicate <input-path> [-d|--search-dir] [-o|--output] [-c|--stdout] [-h|--help]
Seçenekler
-d, --search-dir <directory1 directory2 ...>Derleme ve pdb içeren birden çok dizinin yolu.
-o, --output <output-path>Doğrudan bir dosyaya çıkış.
-c, --stdoutDoğrudan bir konsola çıkış.
Örnek
> 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
Yönetilen yığınları dotnet-stack ile raporlama
kullanarak dotnet-stackyönetilen yığınları raporlamak için:
Yığınları raporlamak için .NET Core uygulamasının işlem tanımlayıcısını (PID) alın.
- Windows'da Görev Yöneticisi'ni
tasklistveya komutunu kullanabilirsiniz. - Örneğin
psLinux'ta komutu. - dotnet-stack ps
- Windows'da Görev Yöneticisi'ni
Şu komutu çalıştırın:
dotnet-stack report --process-id <PID>Yukarıdaki komut aşağıdakine benzer bir çıkış oluşturur:
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[])çıktısı
dotnet-stackaşağıdaki formu izler:- Çıktıdaki açıklamalar ön ekinde bulunur
#. - Her iş parçacığının yerel iş parçacığı kimliğini içeren bir üst bilgisi vardır:
Thread (<thread-id>):. - Yığın çerçeveleri formunu
Module!Methodizler. - Yönetilmeyen koda geçişler çıkışta olduğu gibi
[Native Frames]gösterilir.
# comment Thread (0x1234): module!Method module!Method Thread (0x5678): [Native Frames] Module!Method Module!Method- Çıktıdaki açıklamalar ön ekinde bulunur
Not
İşlemin durdurulması, çok büyük uygulamalar için uzun sürebilir (birkaç dakikaya kadar). Çalışma zamanının, işlev adlarını çözümlemek için yakalanan tüm yönetilen kod için tür ve yöntem bilgilerini göndermesi gerekir.