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: ✔️ .NET Core 3.0 SDK ve sonraki sürümler
Linux'ta döküm dosyalarını toplama
Tavsiye
Döküm toplama, analiz ve diğer uyarılar hakkında sık sorulan sorular için bkz. Dökümler: SSS.
Linux'ta dökümleri toplamanın önerilen iki yolu şunlardır:
-
dotnet-dumpCLI aracı - Kilitlenmelerle ilgili dökümleri toplayan ortam değişkenleri
Linux'ta dökümleri analiz et
Döküm toplandıktan sonra, dotnet-dump aracı dotnet-dump analyze komutuyla kullanılarak analiz edilebilir. Bu analiz adımının dökümü yakalanan ortamla aynı mimariye ve Linux dağıtımına sahip bir makinede çalıştırılması gerekir.
Araç dotnet-dump .NET kodu hakkındaki bilgilerin görüntülenmesini destekler, ancak C ve C++ gibi diğer dillerdeki kod sorunlarını anlamak için kullanışlı değildir.
Alternatif olarak LLDB , Linux'ta dökümleri analiz etmek için kullanılabilir ve bu da hem yönetilen hem de yerel kodun analizine olanak tanır. LLDB, yönetilen kodda hata ayıklamak için SOS uzantısını kullanır.
dotnet-sos CLI aracı, yönetilen kodda hata ayıklamak için birçok yararlı komut içeren SOS'u yüklemek için kullanılabilir. .NET Core dökümlerini analiz etmek için LLDB ve SOS, dökümü oluşturulduğu ortamdan aşağıdaki .NET Core ikili dosyalarını gerektirir:
- libmscordaccore.so
- libcoreclr.so
- dotnet (uygulamayı başlatmak için kullanılan konak)
Çoğu durumda, bu ikili dosyalar dotnet-symbol aracı kullanılarak indirilebilir. Gerekli ikili dosyalar dotnet-symbol ile indirilemiyorsa (örneğin, kaynaktan oluşturulan özel bir .NET Core sürümü kullanılıyorsa), dökümün oluşturulduğu ortamdan yukarıda listelenen dosyaları kopyalamak gerekebilir. Dosyalar döküm dosyasının yanında yer almıyorsa, LLDB/SOS komutunu setclrpath <path> kullanarak yüklenmesi gereken yolu ayarlayabilir ve setsymbolserver -directory <path> sembol dosyalarının aranacağı yolu ayarlayabilirsiniz.
Gerekli dosyalar kullanılabilir olduğunda, hata ayıklamak için yürütülebilir dosya olarak dotnet konağı belirtilerek döküm LLDB'ye yüklenebilir:
lldb --core <dump-file> <host-program>
Önceki komutta, <dump-file> analiz etmek için döküm yoludur ve <host-program> .NET Core uygulamasını başlatan yerel programdır. Bu genellikle dotnet ikili dosyadır, ancak uygulama kendi içinde olduğunda, .dll uzantısı olmayan uygulamanın adıdır.
LLDB başladıktan sonra, doğru sembol konumunu işaret etmek için setsymbolserver komutunu (setsymbolserver -ms Microsoft'un sembol sunucusunu kullanmak veya setsymbolserver -directory <path> yerel bir yol belirtmek için) kullanmak gerekebilir. Yerel simgeleri yüklemek için komutunu çalıştırın loadsymbols. Bu noktada, dökümü analiz etmek için SOS komutlarını kullanabilirsiniz.
Uyarı
LLDB komutuyla yüklenebilir sudo apt-get install lldb
Windows'da dökümleri analiz etme
Linux makinesinden toplanan dökümler Visual Studio, Windbg veya dotnet-dump aracı kullanılarak bir Windows makinesinde de analiz edilebilir. Hem Visual Studio hem de Windbg yerel ve yönetilen kodu analiz edebilirken dotnet-dump yalnızca yönetilen kodu analiz eder.
Uyarı
Visual Studio sürüm 16.8 ve üzeri, .NET Core 3.1.7 veya sonraki sürümlerde oluşturulan Linux dökümlerini açmanızı ve analiz etmenizi sağlar.
- Visual Studio - Bkz. Visual Studio dökümü hata ayıklama kılavuzu.
- Windbg - Windows kullanıcı modu dökümlerinde hata ayıklamak için kullanacağınız yönergeleri kullanarak windbg'de Linux dökümlerinde hata ayıklayabilirsiniz. Linux x64 veya Arm64 ortamından toplanan dökümler için windbg'nin x64 sürümünü ve Linux x86 ortamından toplanan dökümler için x86 sürümünü kullanın.
- dotnet-dump - dotnet-dump analyze komutunu kullanarak dökümü görüntüleyin. Linux x64 veya Arm64 ortamından toplanan dökümler için dotnet-dump'un x64 sürümünü ve Linux x86 ortamından toplanan dökümler için x86 sürümünü kullanın.
Ayrıca bakınız
- SOS uzantısını yükleme hakkında daha fazla bilgi için dotnet-sos.
- sembol indirme aracını yükleme ve kullanma hakkında daha fazla bilgi için dotnet-symbol.
- Hata ayıklama hakkında daha fazla ayrıntı için yararlı bir SSS de dahil olmak üzere .NET Core tanılama deposu.
- LINUX veya Mac'e LLDB yükleme yönergeleri için LLDB'yi yükleme.
- Linux'ta alıştırma yapma ve sorun giderme için Linux'ta kilitlenme bilgi dökümlerinde hata ayıklama öğreticisi