Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 5902|Vastaus: 1

[.NET Core] [Varsinaista taistelua]. NET/C#-sovellusten kaatumiset ja poikkeukset tuottavat automaattisesti DMP-dump-tiedostoja

[Kopioi linkki]
Julkaistu 2022-11-6 22:41:42 | | | |
Vaatimukset: Kun kehitetään sovelluksia .NET/C#:lla, kukaan kehittäjä ei pysty varmistamaan ohjelman vakaata ja luotettavaa suoritusta, mikä voi liittyä kehittäjän koodilogiikkaan tai käyttäjän suoritusympäristöönEi ole 100 % takeita siitä, että kehittämäsi sovellus on ongelmatonEi ole kamalaa, että ongelma on olemassa, mutta kauheaa on, että on olemassa ongelma, joka ei pysty selvittämään syytä ja ratkaisemaan sitä.

Jos sovellusta ei suoriteta odotetusti ja poikkeava poistuminen tapahtuu, miten DMP-dump-tiedosto voidaan automaattisesti luoda ongelman ratkaisemiseksi?
Dump on tiedosto, joka sisältää tilannekuvan prosessista sen luomishetkellä ja jota voidaan käyttää sovelluksen tilan tarkistamiseen. Kun debuggerin liittäminen .NET-sovellukseen, kuten tuotanto- tai CI-ympäristöön, on vaikeaa, voit käyttää dumppeja sovelluksen virheenkorjaukseen. Dumpien käyttö tallentaa ongelmallisten prosessien tilan, ja tila voidaan tarkistaa suoraan keskeyttämättä sovellusta.

Kerää dumppauksia

Voit käyttää ympäristömuuttujia konfiguroidaksesi sovelluksesi keräämään dumppeja vian sattuessa. Tämä on hyödyllistä, jos haluat tietää vian syyn. Esimerkiksi dumpien kaappaaminen, kun poikkeus heitetään, auttaa tunnistamaan ongelmia tarkistamalla sovelluksen tilan, jos se epäonnistuu.

Seuraava taulukko näyttää ympäristömuuttujat, joilla voit konfiguroida sovelluksesi keräämään dumppeja vian sattuessa.

ympäristömuuttuja
havainnollistaa
Laiminlyönti
COMPlus_DbgEnableMiniDump vai DOTNET_DbgEnableMiniDumpJos asetuksena on 1, ota ytimen dump-generointi käyttöön.0
COMPlus_DbgMiniDumpType vai DOTNET_DbgMiniDumpTypeSellainen kaatopaikka, jonka pitäisi kerätä. Katso alla oleva taulukko lisätietoja varten2 (MiniDumpWithPrivateReadWriteMemory)
COMPlus_DbgMiniDumpName vai DOTNET_DbgMiniDumpNameKirjoita tiedostopolku dumpiin. Varmista, että dotnet-prosessia ajavalla käyttäjällä on kirjoitusoikeus määriteltyyn hakemistoon./tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics vai DOTNET_CreateDumpDiagnosticsJos asetettu arvoon 1, ota diagnostiikkalokitus käyttöön dump-prosessille.0
COMPlus_EnableCrashReport vai DOTNET_EnableCrashReport(Vaatii .NET 6:n tai uudemman) Jos ajonaikainen tiedosto on asetettu arvoon 1, suoritusaika tuottaa JSON-muotoisen vikaraportin, joka sisältää tietoa epäonnistuneen sovelluksen säikeistä ja pinokehyksistä. Kaatumisraportin nimi on .crashreport.json liitetty dump-polku/nimi.
COMPlus_CreateDumpVerboseDiagnostics vai DOTNET_CreateDumpVerboseDiagnostics(Vaatii .NET 7:n tai uudemman) Jos asetus on 1, ota käyttöön yksityiskohtainen diagnostiikkalokki dump-prosessille.0
COMPlus_CreateDumpLogToFile vai DOTNET_CreateDumpLogToFile(.NET 7 tai uudempi vaaditaan) Tiedostopolku diagnostiikkaviestiin tulee kirjoittaa. Jos sitä ei ole asetettu, vikaantuneen sovelluksen konsolille kirjoitetaan diagnostiikkaviesti.

Näille ympäristömuuttujille .NET 7 standardisoi etuliitteen DOTNET_ COMPlus_:n sijaan. Kuitenkin COMPlus_-etuliite toimii edelleen asianmukaisesti. Jos oletAiemmissa .NET-ajonaikaisissa versioissa ympäristömuuttujien tulisi edelleen käyttää COMPlus_-etuliitettä



Luo uusi .NET Core 6 -sovellustesti

Käytä VS 2022:ta testataksesi uutta .NET Core 6 -sovellustestiä seuraavalla koodilla:

Käynnistä ohjelma cmd-komennolla, kuten alla olevassa kuvassa näkyy:

COMPlus_EnableCrashReport=1
COMPlus_DbgEnableMiniDump=1
COMPlus_DbgMiniDumpName="C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp"
COMPlus_CreateDumpDiagnostics=1
Käsittelemätön poikkeus. System.Poikkeus: itsvse.com
   ohjelmassa. <Main>$(String[] args) muodossa C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\DumpDemo\Program.cs:rivi 9
[createdump] Kirjoitetaan minidump heapilla tiedostoon C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp
[createdump] Dump onnistuneesti kirjoitettu



Näet, että kun ohjelma kaatuu epänormaalisti, se onnistuu valitsemallamme hakemistollaDump .dmp tiedosto luodaanMitä tulee siihen, miten sitä analysoidaan, se on eri asia.

Windows Platformin yleisasetukset

Windowsissa Windowsin virheraportointi (WER) voidaan konfiguroida generoimaan dumppeja sovelluksen kaatuessa.

Tämä menetelmä toimii kaikissa ohjelmissa, ei vain . .NET-ohjelmia, kuten C++, Go jne.; Ja ja. VERKKO. NET Core -versio

  • Avaa regedit.exe
  • Avaa hakemisto HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
  • Luo KEY-dump-kansio tyypillä REG_EXPAND_SZ konfiguroidaksesi hakemiston, johon dump-tiedostot tallennetaan.
  • Voit myös luoda KEY DumpCountin tyypillä REG_DWORD määrittää dumpien kokonaismäärän




Tietenkin voit myös konfiguroida näitä PowerShell-komentojen avulla:

Yllä olevan asetuksen mukaan, jos ohjelma poistuu epänormaalisti, se luo ohjelmadumpin kansioon %LOCALAPPDATA%\CrashDumps.

Varat:

Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.




Edellinen:Yksityiskohtainen selitys Discuz-liitekuvien, avatar-kuvien ja albumikuvien tallennussäännöistä
Seuraava:Käytännön toiminta: Käytä BundleTransformeria korvaamaan System.Web.Optimization
 Vuokraisäntä| Julkaistu 2022-11-6 22:44:06 |
Lähetä dump-tiedostot:

Kun ohjelma käynnistyy, selvitä, onko hakemistossa generoitu dump-tiedosto, jos on, lähetä tiedosto määritettyyn rajapintaan ja poista tiedosto.
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com