Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 5902|Atbildi: 1

[.NET kodols] [Faktiskā cīņa]. NET/C# lietojumprogrammu avārijas un izņēmumi automātiski ģenerē DMP izmetes failus

[Kopēt saiti]
Publicēts 2022-11-6 22:41:42 | | | |
Prasības: Izstrādājot lietojumprogrammas, izmantojot .NET/C#, nevienam izstrādātājam nav iespējams nodrošināt stabilu un stabilu programmas izpildi, kas var būt saistīta ar izstrādātāja koda loģiku vai lietotāja darbības vidiNav 100% garantijas, ka jūsu izstrādātā lietojumprogramma būs bez problēmāmNav briesmīgi, ka ir problēma, bet briesmīgais ir tas, ka ir problēma, kas nevar noskaidrot cēloni un atrisināt problēmu.

Ja lietojumprogramma netiek izpildīta, kā paredzēts, un notiek neparasta izeja, kā var automātiski ģenerēt DMP izmetes failu, lai novērstu problēmu?
Izmete ir fails, kas satur procesa momentuzņēmumu, kad tas tika izveidots, un to var izmantot, lai pārbaudītu lietojumprogrammas stāvokli. Ja ir grūti pievienot atkļūdotāju .NET lietojumprogrammai, piemēram, ražošanas vai CI videi, lietojumprogrammas atkļūdošanai var izmantot izmetes. Izmantojot izgāztuves, tiek uztverts problemātisko procesu stāvoklis, un stāvokli var pārbaudīt tieši, nepārtraucot lietojumprogrammu.

Savākt izgāztuves

Vides mainīgos var izmantot, lai konfigurētu lietojumprogrammu izmetes apkopošanai kļūmes gadījumā. Tas ir noderīgi, ja vēlaties uzzināt kļūmes cēloni. Piemēram, izmetes tveršana, kad tiek izmests izņēmums, palīdz identificēt problēmas, pārbaudot programmas stāvokli, ja tas neizdodas.

Tālāk esošajā tabulā ir parādīti vides mainīgie, kurus var izmantot, lai konfigurētu lietojumprogrammu izmetes apkopošanai kļūmes gadījumā.

Vides mainīgais
Ilustrētu
Noklusējuma
COMPlus_DbgEnableMiniDump vai DOTNET_DbgEnableMiniDumpJa iestatīts uz 1, iespējojiet kodola izmetes ģenerēšanu.0
COMPlus_DbgMiniDumpType vai DOTNET_DbgMiniDumpTypeSavācamās izgāztuves veids. Sīkāku informāciju skatiet tabulā2 (MiniDumpWithPrivateReadWriteMemory)
COMPlus_DbgMiniDumpName vai DOTNET_DbgMiniDumpNameUzrakstiet faila ceļu uz izgāztuvi. Pārliecinieties, ka lietotājam, kas darbojas dotnet procesā, ir rakstīšanas piekļuve norādītajam direktorijam./tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics vai DOTNET_CreateDumpDiagnosticsJa iestatīts uz 1, iespējojiet diagnostikas reģistrēšanu izmetes procesam.0
COMPlus_EnableCrashReport vai DOTNET_EnableCrashReport(Nepieciešams .NET 6 vai jaunāka versija) Ja iestatīts uz 1, izpildlaiks ģenerē JSON formāta kļūmes atskaiti, kurā ir iekļauta informācija par neveiksmīgās lietojumprogrammas pavedieniem un steka kadriem. Avārijas ziņojuma nosaukums ir izmetes ceļš/nosaukums, kas pievienots .crashreport.json.
COMPlus_CreateDumpVerboseDiagnostics vai DOTNET_CreateDumpVerboseDiagnostics(Nepieciešams .NET 7 vai jaunāka versija) Ja iestatīts uz 1, iespējojiet detalizētu diagnostikas reģistrēšanu izmetes procesam.0
COMPlus_CreateDumpLogToFile vai DOTNET_CreateDumpLogToFile(nepieciešams .NET 7 vai jaunāka versija) Jāraksta faila ceļš uz diagnostikas ziņojumu. Ja tas nav iestatīts, neveiksmīgās lietojumprogrammas konsolē tiek ierakstīts diagnostikas ziņojums.

Šiem vides mainīgajiem .NET 7 standartizē prefiksu DOTNET_, nevis COMPlus_. Tomēr COMPlus_ prefikss turpinās darboties pareizi. Ja esatIepriekšējās .NET izpildlaika versijās vides mainīgajiem joprojām jāizmanto prefikss COMPlus_



Jaunas .NET Core 6 lietojumprogrammas testa izveide

Izmantojiet VS 2022, lai pārbaudītu jaunu .NET Core 6 lietotnes testu ar šādu kodu:

Sāciet programmu, izmantojot komandu cmd, kā parādīts zemāk redzamajā attēlā:

COMPlus_EnableCrashReport=1
COMPlus_DbgEnableMiniDump=1
COMPlus_DbgMiniDumpName="C:\Lietotāji\itsvse_pc\AppData\Local\Temp\NET\test.dmp"
COMPlus_CreateDumpDiagnostics=1
Neapstrādāts izņēmums. Sistēma.Izņēmums: itsvse.com
   pie programmas. <Main>$(String[] argumenti) C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\DumpDemo\Program.cs:line 9
[createdump] Minidump rakstīšana ar kaudzi failā C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp
[createdump] Izgāztuve veiksmīgi uzrakstīta



Jūs varat redzēt, ka pēc tam, kad programma avarē neparasti, tā ir veiksmīgi zem mūsu norādītā direktorijaTiek ģenerēts .dmp faila izmetes failsKas attiecas uz to, kā to analizēt, tas ir cits jautājums.

Windows platformas universālie iestatījumi

Operētājsistēmā Windows kļūdu uzrādīšanu (WER) var konfigurēt tā, lai ģenerētu izmetes, kad avarē lietojumprogramma.

Šī metode darbojas visām programmām, ne tikai . .NET programmas, piemēram, C++, Go utt.; Un un. NETO. NET Core versija

  • Atvērt regedit.exe
  • Atveriet direktoriju HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
  • Izveidojiet REG_EXPAND_SZ tipa KEY DumpFolder, lai konfigurētu direktoriju, kurā tiek glabāti izmetes faili
  • Varat arī izveidot tipa KEY DumpCount REG_DWORD konfigurēt kopējo izmetes apjomu




Protams, tos var konfigurēt arī, izmantojot PowerShell komandas:

Saskaņā ar iepriekš minēto konfigurāciju, ja programma iziet neparasti, tā izveidos programmas izmeti direktorijā %LOCALAPPDATA%\CrashDumps.

Resursu:

Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.




Iepriekšējo:Detalizēts skaidrojums par Discuz pielikumu attēlu, iemiesojuma attēlu un albumu attēlu glabāšanas noteikumiem
Nākamo:Praktiskā darbība: izmantojiet BundleTransformer, lai aizstātu System.Web.Optimization
 Saimnieks| Publicēts 2022-11-6 22:44:06 |
Nosūtīt izmetes failus:

Pēc programmas startēšanas nosakiet, vai direktorijā ir ģenerēts izgāztuves fails, ja tā, iesniedziet failu norādītajā saskarnē un pēc tam izdzēsiet failu.
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com