Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 5902|Válasz: 1

[.NET mag] [Valódi harc]. A NET/C# alkalmazás összeomlódásai és kivételei automatikusan generálnak DMP dump fájlokat

[Linket másol]
Közzétéve: 2022-11-6 22:41:42 | | | |
Követelmények: .NET/C# alkalmazások fejlesztésekor lehetetlen, hogy bármely fejlesztő stabil és robusztus program végrehajtását biztosítsa, ami kapcsolódhat a fejlesztő kódlogikájához vagy a felhasználó futó környezetéhezNincs 100%-os garancia arra, hogy az általad fejlesztett alkalmazás problémamentes leszNem szörnyű, ha problémád van, de a szörnyű, hogy van egy probléma, amely nem tudja megtalálni az okát és megoldani azt.

Ha az alkalmazás nem a vártnak megfelelően fut, és rendellenes kilépés történik, hogyan generálható automatikusan egy DMP dump fájl a hibakereséshez?
A dump egy olyan fájl, amely a folyamat létrehozásának pillanatképét tartalmazza, és használható az alkalmazás állapotának ellenőrzésére. Ha nehéz egy hibakeresőt csatlakoztatni egy .NET alkalmazáshoz, például egy gyártási vagy CI környezethez, dumpokat használhatsz az alkalmazás hibakereséséhez. Dump használata rögzíti a problémás folyamatok állapotát, és az állapot közvetlenül ellenőrizhető anélkül, hogy az alkalmazás megállna.

Gyűjtsd a hulladéklerakókat

Környezeti változókkal konfigurálhatod az alkalmazásodat, hogy hiba esetén gyűjtsön dumpokat. Ez hasznos, ha tudni akarod a hiba okát. Például a dumpok rögzítése, amikor kivételt dobnak, segít azonosítani a problémákat azzal, hogy ellenőrzi az alkalmazás állapotát, ha meghibásodik.

Az alábbi táblázat bemutatja azokat a környezeti változókat, amelyekkel beállíthatod az alkalmazásodat a dumpok gyűjtésére hiba esetén.

környezeti változó
illusztrál
Alapértelmezett
COMPlus_DbgEnableMiniDump vagy DOTNET_DbgEnableMiniDumpHa 1-re állítom, engedélyezd a mag dump generálását.0
COMPlus_DbgMiniDumpType vagy DOTNET_DbgMiniDumpTypeMilyen típusú hulladéklerakó, amit be kell gyűjteni. Részletekért lásd az alábbi táblázatot2 (MiniDumpWithPrivateReadWriteMemory)
COMPlus_DbgMiniDumpName vagy DOTNET_DbgMiniDumpNameÍrd meg a fájlútot a dumphoz. Győződjön meg róla, hogy a dotnet folyamatot futtató felhasználó rendelkezik írási hozzáféréssel a megadott könyvtárhoz./tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics vagy DOTNET_CreateDumpDiagnosticsHa 1-re állítod, engedélyezd a diagnosztikai naplózást a dump folyamathoz.0
COMPlus_EnableCrashReport vagy DOTNET_EnableCrashReport(.NET 6 vagy újabb verziót igényel) Ha 1-re állítva állítják, a futás JSON formátumú hibajelentést generál, amely tartalmazza az alkalmazás szálait és stack kereteit. A crash report neve a dump útvonal/név, amelyet .crashreport.json-hez csatolnak.
COMPlus_CreateDumpVerboseDiagnostics vagy DOTNET_CreateDumpVerboseDiagnostics(.NET 7 vagy újabb szükséges) Ha 1-re állítva állítod, engedélyezd a részletes diagnosztikai naplózást a dump folyamathoz.0
COMPlus_CreateDumpLogToFile vagy DOTNET_CreateDumpLogToFile(.NET 7 vagy újabb verzió szükséges) A fájlút a diagnosztikai üzenethez szükséges legyen. Ha nincs beállítva, diagnosztikai üzenet ír a meghibásodott alkalmazás konzoljára.

Ezeknél a környezeti változóknál a .NET 7 szabványosítja a DOTNET_ előtagot a COMPlus_ helyett. Azonban a COMPlus_ előtag továbbra is rendesen működik. Ha igenA .NET korábbi futási verzióiban a környezeti változóknak továbbra is a COMPlus_ előtagot kell használniuk



Új .NET Core 6 alkalmazásteszt létrehozása

Használd a VS 2022-t egy új .NET Core 6 alkalmazásteszt tesztelésére az alábbi kóddal:

Indítsd el a programot a cmd parancssal, ahogy az alábbi képen is látható:

COMPlus_EnableCrashReport=1
COMPlus_DbgEnableMiniDump=1
COMPlus_DbgMiniDumpName="C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp"
COMPlus_CreateDumpDiagnostics=1
Kezeletlen kivétel. Rendszer.Kivétel: itsvse.com
   a programon. <Main>$(String[] args) a C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\DumpDemo\Program.cs:line 9-ben
[createdump] Minidump írása halommal a C fájlba: \Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp
[createdump] Sikeresen kidobás



Láthatod, hogy miután a program rendellenesen összeomlik, sikeresen a megadott könyvtár alatt működikA dump .dmp fájl generálódikAmi azt illeti, hogyan kell elemezni, az már más kérdés.

Windows Platform univerzális beállítások

Windowsban a Windows hibajelentése (WER) konfigurálható úgy, hogy dumpokat generáljon, amikor egy alkalmazás összeomlik.

Ez a módszer minden programra működik, nem csak . .NET programok, mint például C++, Go stb.; És és. HÁLÓ. NET Core verzió

  • Nyitva regedit.exe
  • Nyisd meg a könyvtárat HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
  • Hozz létre egy REG_EXPAND_SZ típusú KEY DumpFolder-t, hogy konfiguráld azt a könyvtárat, ahol a dump fájlok tárolódnak
  • Létrehozhatsz egy KEY DumpCount típust REG_DWORD konfigurálhatod a dumpok teljes számát




Természetesen ezeket PowerShell parancsokkal is konfigurálhatod:

A fenti konfiguráció szerint, ha a program rendellenesen kilép, akkor létrehoz egy programdumpot a %LOCALAPPDATA%\CrashDumps könyvtárban.

Erőforrások:

A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.




Előző:Részletes magyarázat a Discuz csatolmányképek, avatar képek és albumképek tárolási szabályairól
Következő:Gyakorlati működés: Használd a BundleTransformert a System.Web.Optimization helyettesítésére
 Háziúr| Közzétéve: 2022-11-6 22:44:06 |
Dobás fájlokat küldj:

A program elindulása után állapítsd meg, van-e a könyvtárban generált dump fájl, ha igen, küldd be a fájlt a megadott felületre, majd töröld a fájlt.
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com