Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini berlaku untuk: ✔️ .NET Core 3.0 SDK dan versi yang lebih baru
Mengumpulkan cadangan di Linux
Petunjuk / Saran
Untuk tanya jawab umum tentang pengumpulan dump, analisis, dan catatan penting lainnya, lihat Dumps: FAQ.
Dua cara yang direkomendasikan untuk mengumpulkan dump di Linux adalah:
-
dotnet-dumpAlat CLI - Variabel lingkungan yang mengumpulkan file dump saat terjadi crash
Menganalisis cadangan di Linux
Setelah sebuah dump dikumpulkan, dapat dianalisis menggunakan alat dotnet-dump dan perintah dotnet-dump analyze. Langkah analisis ini perlu dijalankan pada mesin yang memiliki arsitektur dan distro Linux yang sama dengan lingkungan tempat cadangan ditangkap.
Alat ini dotnet-dump mendukung menampilkan informasi tentang kode .NET, tetapi tidak berguna untuk memahami masalah kode untuk bahasa lain seperti C dan C++.
Atau, LLDB dapat digunakan untuk menganalisis cadangan di Linux, yang memungkinkan analisis kode terkelola dan asli. LLDB menggunakan ekstensi SOS untuk men-debug kode terkelola. Alat dotnet-sos CLI dapat digunakan untuk menginstal SOS, yang memiliki banyak perintah berguna untuk men-debug kode terkelola. Untuk menganalisis dumping .NET Core, LLDB dan SOS memerlukan biner .NET Core berikut dari lingkungan tempat dumping dibuat:
- libmscordaccore.so
- libcoreclr.so
- dotnet (host yang digunakan untuk meluncurkan aplikasi)
Dalam kebanyakan kasus, file biner ini dapat diunduh menggunakan alat dotnet-symbol ini. Jika biner yang diperlukan tidak dapat diunduh dengan dotnet-symbol (misalnya, jika versi privat .NET Core yang dibangun dari sumber sedang digunakan), mungkin perlu menyalin file yang tercantum di atas dari lingkungan tempat cadangan dibuat. Jika file tidak terletak di samping file cadangan, Anda dapat menggunakan perintah setclrpath <path> LLDB/SOS untuk mengatur jalur tempat file harus dimuat dan setsymbolserver -directory <path> untuk mengatur jalur untuk mencari file simbol.
Setelah file yang diperlukan tersedia, dump dapat dimuat di LLDB dengan menentukan host dotnet sebagai file yang dapat dieksekusi untuk debugging.
lldb --core <dump-file> <host-program>
Dalam perintah sebelumnya, <dump-file> adalah jalur dump untuk dianalisis dan <host-program> adalah program native yang memulai aplikasi .NET Core. Biasanya, ini adalah file tipe dotnet biner kecuali jika aplikasi bersifat mandiri, dalam hal ini, aplikasi tersebut menggunakan nama aplikasinya tanpa ekstensi .dll .
Setelah LLDB dimulai, mungkin perlu menggunakan setsymbolserver perintah untuk menunjuk ke lokasi simbol yang benar (setsymbolserver -ms untuk menggunakan server simbol Microsoft atau setsymbolserver -directory <path> untuk menentukan jalur lokal). Untuk memuat simbol asli, jalankan loadsymbols. Pada titik ini, Anda dapat menggunakan perintah SOS untuk menganalisis dump.
Nota
LLDB dapat diinstal dengan perintah sudo apt-get install lldb
Menganalisis cadangan di Windows
Dump yang dikumpulkan dari mesin Linux juga dapat dianalisis pada mesin Windows menggunakan Visual Studio, Windbg, atau alat dotnet-dump. Visual Studio dan Windbg dapat menganalisis kode asli dan terkelola, sementara dotnet-dump hanya menganalisis kode terkelola.
Nota
Visual Studio versi 16.8 dan yang lebih baru memungkinkan Anda membuka dan menganalisis cadangan Linux yang dihasilkan pada .NET Core 3.1.7 atau yang lebih baru.
- Visual Studio - Lihat panduan debug dump Visual Studio.
- Windbg - Anda dapat men-debug cadangan Linux di windbg menggunakan instruksi yang sama yang akan Anda gunakan untuk men-debug cadangan mode pengguna Windows. Gunakan windbg versi x64 untuk cadangan yang dikumpulkan dari lingkungan Linux x64 atau Arm64 dan versi x86 untuk cadangan yang dikumpulkan dari lingkungan Linux x86.
- dotnet-dump - Lihat dump menggunakan perintah dotnet-dump analyze . Gunakan versi x64 dotnet-dump untuk cadangan yang dikumpulkan dari lingkungan Linux x64 atau Arm64 dan versi x86 untuk cadangan yang dikumpulkan dari lingkungan Linux x86.
Lihat juga
- dotnet-sos untuk detail selengkapnya tentang menginstal ekstensi SOS.
- simbol dotnet untuk informasi lebih lanjut mengenai menginstal dan menggunakan alat pengunduhan simbol.
- Repositori diagnostik .NET Core untuk detail selengkapnya tentang debugging, termasuk FAQ yang berguna.
- Menginstal LLDB untuk instruksi tentang menginstal LLDB di Linux atau Mac.
- Berlatih dan memecahkan masalah di Linux untuk tutorial tentang pembuatan debug crash dump pada Linux