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_DbgEnableMiniDump | Ha 1-re állítom, engedélyezd a mag dump generálását. | 0 | | COMPlus_DbgMiniDumpType vagy DOTNET_DbgMiniDumpType | Milyen típusú hulladéklerakó, amit be kell gyűjteni. Részletekért lásd az alábbi táblázatot | 2 (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_CreateDumpDiagnostics | Ha 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ó.
|