Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 5902|Jawab: 1

[Inti .NET] [Pertempuran aktual]. Aplikasi NET/C# mogok dan pengecualian secara otomatis menghasilkan file dump DMP

[Salin tautan]
Dipaparkan pada 2022-11-6 22:41:42 | | | |
Persyaratan: Saat mengembangkan aplikasi menggunakan .NET/C#, tidak mungkin bagi pengembang mana pun untuk memastikan eksekusi program yang stabil dan kuat, yang mungkin terkait dengan logika kode pengembang atau lingkungan pengguna yang sedang berjalanTidak ada jaminan 100% bahwa aplikasi yang Anda kembangkan akan bebas masalahTidak mengerikan untuk memiliki masalah, tetapi yang mengerikan adalah ada masalah yang tidak dapat mengetahui penyebabnya dan menyelesaikan masalah.

Jika aplikasi tidak dijalankan seperti yang diharapkan dan terjadi keluar yang tidak normal, bagaimana file dump DMP dapat dibuat secara otomatis untuk memecahkan masalah?
Dump adalah file yang berisi snapshot proses saat dibuat dan dapat digunakan untuk memeriksa status aplikasi. Ketika sulit untuk melampirkan debugger ke aplikasi .NET, seperti lingkungan produksi atau CI, Anda dapat menggunakan dump untuk men-debug aplikasi. Menggunakan dump menangkap status proses yang bermasalah, dan status dapat diperiksa secara langsung tanpa menghentikan aplikasi.

Kumpulkan dump

Anda dapat menggunakan variabel lingkungan untuk mengonfigurasi aplikasi Anda untuk mengumpulkan dump jika terjadi kegagalan. Ini berguna jika Anda ingin mengetahui penyebab kegagalan. Misalnya, menangkap dump saat pengecualian dilemparkan membantu mengidentifikasi masalah dengan memeriksa status aplikasi jika gagal.

Tabel berikut menunjukkan variabel lingkungan yang dapat Anda gunakan untuk mengonfigurasi aplikasi Anda untuk mengumpulkan dump jika terjadi kegagalan.

variabel lingkungan
Menggambarkan
Default
COMPlus_DbgEnableMiniDump atau DOTNET_DbgEnableMiniDumpJika diatur ke 1, aktifkan pembuatan dump inti.0
COMPlus_DbgMiniDumpType atau DOTNET_DbgMiniDumpTypeJenis tempat pembuangan yang akan dikumpulkan. Lihat tabel di bawah ini untuk detailnya2 (MiniDumpWithPrivateReadWriteMemory)
COMPlus_DbgMiniDumpName atau DOTNET_DbgMiniDumpNameTulis jalur file ke dump. Pastikan pengguna yang menjalankan proses dotnet memiliki akses tulis ke direktori yang ditentukan./tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics atau DOTNET_CreateDumpDiagnosticsJika diatur ke 1, aktifkan pengelogan diagnostik untuk proses dump.0
COMPlus_EnableCrashReport atau DOTNET_EnableCrashReport(Memerlukan .NET 6 atau yang lebih baru) Jika diatur ke 1, runtime menghasilkan laporan kegagalan berformat JSON yang menyertakan informasi tentang utas dan bingkai tumpukan aplikasi yang gagal. Nama laporan kerusakan adalah jalur/nama dump yang ditambahkan ke .crashreport.json.
COMPlus_CreateDumpVerboseDiagnostics atau DOTNET_CreateDumpVerboseDiagnostics(Memerlukan .NET 7 atau yang lebih baru) Jika diatur ke 1, aktifkan pengelogan diagnostik terperinci untuk proses dump.0
COMPlus_CreateDumpLogToFile atau DOTNET_CreateDumpLogToFile(.NET 7 atau yang lebih baru diperlukan) Jalur file ke pesan diagnostik harus ditulis. Jika tidak diatur, pesan diagnostik ditulis ke konsol aplikasi yang gagal.

Untuk variabel lingkungan ini, .NET 7 menstandarkan awalan DOTNET_ alih-alih COMPlus_. Namun, awalan COMPlus_ akan terus berfungsi dengan baik. Jika AndaDalam versi runtime .NET sebelumnya, variabel lingkungan masih harus menggunakan awalan COMPlus_



Membuat pengujian aplikasi .NET Core 6 baru

Gunakan VS 2022 untuk menguji pengujian aplikasi .NET Core 6 baru dengan kode berikut:

Mulai program menggunakan perintah cmd, seperti yang ditunjukkan pada gambar di bawah ini:

COMPlus_EnableCrashReport=1
COMPlus_DbgEnableMiniDump=1
COMPlus_DbgMiniDumpName="C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp"
COMPlus_CreateDumpDiagnostics=1
Pengecualian yang tidak ditangani. Pengecualian Sistem: itsvse.com
   pada Program. <Main>$(String[] args) di C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\DumpDemo\Program.cs:line 9
[dibuat] Menulis minidump dengan tumpukan ke file C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp
[dibuat] Dump berhasil ditulis



Anda dapat melihat bahwa setelah program mogok secara tidak normal, itu berhasil di bawah direktori yang kami tentukanFile .dmp dump dihasilkanAdapun bagaimana menganalisisnya, itu masalah yang berbeda.

Pengaturan Universal Platform Windows

Di Windows, Windows Error Reporting (WER) dapat dikonfigurasi untuk menghasilkan dump saat aplikasi mogok.

Metode ini berfungsi untuk semua program, bukan hanya . program .NET, seperti C++, Go, dll.; Dan dan. JARING. Versi NET Core

  • Buka regedit.exe
  • Buka direktori HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
  • Buat KEY DumpFolder jenis REG_EXPAND_SZ untuk mengonfigurasi direktori tempat file dump disimpan
  • Anda juga dapat membuat KEY DumpCount jenis REG_DWORD mengonfigurasi jumlah total dump




Tentu saja, Anda juga dapat mengonfigurasi ini menggunakan perintah PowerShell:

Menurut konfigurasi di atas, jika program keluar secara tidak normal, program akan membuat dump program di direktori %LOCALAPPDATA%\CrashDumps.

Sumber daya:

Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.




Mantan:Penjelasan terperinci tentang aturan penyimpanan untuk gambar lampiran Diskuz, gambar avatar, dan gambar album
Depan:Operasi Praktis: Gunakan BundleTransformer untuk mengganti System.Web.Optimization
 Tuan tanah| Dipaparkan pada 2022-11-6 22:44:06 |
Kirim file dump:

Setelah program dimulai, tentukan apakah direktori memiliki file dump yang dihasilkan, jika demikian, kirimkan file ke antarmuka yang ditentukan, lalu hapus file tersebut.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com