Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 5902|Απάντηση: 1

[.NET Πυρήνας] [Πραγματική μάχη]. Η εφαρμογή NET/C# διακόπτεται και οι εξαιρέσεις δημιουργούν αυτόματα αρχεία ένδειξης σφαλμάτων DMP

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2022-11-6 22:41:42 | | | |
απαιτήσεις: Κατά την ανάπτυξη εφαρμογών που χρησιμοποιούν .NET/C#, είναι αδύνατο για οποιονδήποτε προγραμματιστή να διασφαλίσει σταθερή και ισχυρή εκτέλεση του προγράμματος, η οποία μπορεί να σχετίζεται με τη λογική κώδικα του προγραμματιστή ή το περιβάλλον εκτέλεσης του χρήστηΔεν υπάρχει 100% εγγύηση ότι η εφαρμογή που αναπτύσσετε θα είναι χωρίς προβλήματαΔεν είναι τρομερό να έχεις πρόβλημα, αλλά το τρομερό είναι ότι υπάρχει ένα πρόβλημα που δεν μπορεί να ανακαλύψει την αιτία και να λύσει το πρόβλημα.

Εάν η εφαρμογή δεν εκτελεστεί όπως αναμένεται και παρουσιαστεί μη φυσιολογική έξοδος, πώς μπορεί να δημιουργηθεί αυτόματα ένα αρχείο ένδειξης σφαλμάτων DMP για την αντιμετώπιση του προβλήματος;
Το dump είναι ένα αρχείο που περιέχει ένα στιγμιότυπο της διαδικασίας όταν δημιουργήθηκε και μπορεί να χρησιμοποιηθεί για τον έλεγχο της κατάστασης της εφαρμογής. Όταν είναι δύσκολο να συνδέσετε ένα πρόγραμμα εντοπισμού σφαλμάτων σε μια εφαρμογή .NET, όπως ένα περιβάλλον παραγωγής ή CI, μπορείτε να χρησιμοποιήσετε ενδείξεις σφαλμάτων για τον εντοπισμό σφαλμάτων στην εφαρμογή. Η χρήση χωματερών καταγράφει την κατάσταση των προβληματικών διεργασιών και η κατάσταση μπορεί να ελεγχθεί απευθείας χωρίς διακοπή της εφαρμογής.

Συλλέξτε χωματερές

Μπορείτε να χρησιμοποιήσετε μεταβλητές περιβάλλοντος για να ρυθμίσετε τις παραμέτρους της εφαρμογής σας ώστε να συλλέγει ενδείξεις σφαλμάτων σε περίπτωση αποτυχίας. Αυτό είναι χρήσιμο εάν θέλετε να μάθετε την αιτία της αποτυχίας. Για παράδειγμα, η καταγραφή ενδείξεων όταν δημιουργείται μια εξαίρεση βοηθά στον εντοπισμό προβλημάτων ελέγχοντας την κατάσταση της εφαρμογής εάν αποτύχει.

Ο παρακάτω πίνακας εμφανίζει τις μεταβλητές περιβάλλοντος που μπορείτε να χρησιμοποιήσετε για να ρυθμίσετε τις παραμέτρους της εφαρμογής σας ώστε να συλλέγει ενδείξεις σφαλμάτων σε περίπτωση αποτυχίας.

μεταβλητή περιβάλλοντος
διευκρινίζω
Προεπιλογή
COMPlus_DbgEnableMiniDump ή DOTNET_DbgEnableMiniDumpΕάν οριστεί σε 1, ενεργοποιήστε τη δημιουργία ένδειξης σφαλμάτων πυρήνα.0
COMPlus_DbgMiniDumpType ή DOTNET_DbgMiniDumpTypeΟ τύπος της χωματερής που θα συλλεχθεί. Δείτε τον παρακάτω πίνακα για λεπτομέρειες2 (MiniDumpWithPrivateReadWriteMemory)
COMPlus_DbgMiniDumpName ή DOTNET_DbgMiniDumpNameΓράψτε τη διαδρομή του αρχείου προς τη χωματερή. Βεβαιωθείτε ότι ο χρήστης που εκτελεί τη διαδικασία dotnet έχει πρόσβαση εγγραφής στον καθορισμένο κατάλογο./tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics ή DOTNET_CreateDumpDiagnosticsΕάν οριστεί σε 1, ενεργοποιήστε την καταγραφή διαγνωστικών για τη διαδικασία ένδειξης σφαλμάτων.0
COMPlus_EnableCrashReport ή DOTNET_EnableCrashReport(Απαιτείται .NET 6 ή νεότερη έκδοση) Εάν οριστεί σε 1, ο χρόνος εκτέλεσης δημιουργεί μια αναφορά αποτυχίας με μορφοποίηση JSON που περιλαμβάνει πληροφορίες σχετικά με τα νήματα και τα πλαίσια στοίβας της αποτυχημένης εφαρμογής. Το όνομα της αναφοράς σφαλμάτων είναι η διαδρομή/όνομα ένδειξης σφαλμάτων που προσαρτάται στο .crashreport.json.
COMPlus_CreateDumpVerboseDiagnostics ή DOTNET_CreateDumpVerboseDiagnostics(Απαιτείται .NET 7 ή νεότερη έκδοση) Εάν οριστεί σε 1, ενεργοποιήστε τη λεπτομερή καταγραφή διαγνωστικών για τη διαδικασία ένδειξης σφαλμάτων.0
COMPlus_CreateDumpLogToFile ή DOTNET_CreateDumpLogToFile(Απαιτείται .NET 7 ή νεότερη έκδοση) Θα πρέπει να γραφτεί η διαδρομή αρχείου προς το διαγνωστικό μήνυμα. Εάν δεν οριστεί, εγγράφεται ένα διαγνωστικό μήνυμα στην κονσόλα της αποτυχημένης εφαρμογής.

Για αυτές τις μεταβλητές περιβάλλοντος, το .NET 7 τυποποιεί το πρόθεμα DOTNET_ αντί για COMPlus_. Ωστόσο, το πρόθεμα COMPlus_ θα συνεχίσει να λειτουργεί σωστά. Εάν είστεΣε παλαιότερες εκδόσεις του χρόνου εκτέλεσης .NET, οι μεταβλητές περιβάλλοντος θα πρέπει να εξακολουθούν να χρησιμοποιούν το πρόθεμα COMPlus_



Δημιουργία νέας δοκιμής εφαρμογής .NET Core 6

Χρησιμοποιήστε το VS 2022 για να δοκιμάσετε μια νέα δοκιμή εφαρμογής .NET Core 6 με τον ακόλουθο κώδικα:

Ξεκινήστε το πρόγραμμα χρησιμοποιώντας την εντολή cmd, όπως φαίνεται στην παρακάτω εικόνα:

COMPlus_EnableCrashReport=1
COMPlus_DbgEnableMiniDump=1
COMPlus_DbgMiniDumpName="C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp"
COMPlus_CreateDumpDiagnostics=1
Ανεπίλυτη εξαίρεση. System.Exception: itsvse.com
   στο Πρόγραμμα. <Main>$(String[] args) στο C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\DumpDemo\Program.cs:line 9
[δημιουργίαχωμα] Εγγραφή minidump με σωρό στο αρχείο C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp
[δημιουργίαχωμα] Το Dump γράφτηκε με επιτυχία



Μπορείτε να δείτε ότι μετά την ασυνήθιστα διακοπή λειτουργίας του προγράμματος, βρίσκεται με επιτυχία στον κατάλογο που καθορίζουμεΔημιουργείται το αρχείο .dmp ένδειξης σφαλμάτωνΌσο για το πώς να το αναλύσουμε, είναι διαφορετικό θέμα.

Καθολικές ρυθμίσεις πλατφόρμας των Windows

Στα Windows, η Αναφορά σφαλμάτων των Windows (WER) μπορεί να ρυθμιστεί ώστε να δημιουργεί ενδείξεις σφαλμάτων όταν διακόπτεται μια εφαρμογή.

Αυτή η μέθοδος λειτουργεί για όλα τα προγράμματα, όχι μόνο για το . Προγράμματα .NET, όπως C++, Go κ.λπ. Και και. ΔΊΧΤΥ. Έκδοση NET Core

  • Ανοίξτε regedit.exe
  • Ανοίξτε τον κατάλογο HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
  • Δημιουργήστε ένα KEY DumpFolder τύπου REG_EXPAND_SZ για να διαμορφώσετε τον κατάλογο όπου αποθηκεύονται τα αρχεία ένδειξης σφαλμάτων
  • Μπορείτε επίσης να δημιουργήσετε ένα KEY DumpCount τύπου REG_DWORD να διαμορφώσετε το συνολικό ποσό των ενδείξεων




Φυσικά, μπορείτε επίσης να τα διαμορφώσετε χρησιμοποιώντας εντολές PowerShell:

Σύμφωνα με την παραπάνω διαμόρφωση, εάν το πρόγραμμα εξέλθει ασυνήθιστα, θα δημιουργήσει μια ένδειξη προγράμματος στον κατάλογο %LOCALAPPDATA%\CrashDumps.

Πόροι:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.




Προηγούμενος:Λεπτομερής επεξήγηση των κανόνων αποθήκευσης για εικόνες συνημμένων Discuz, εικόνες avatar και εικόνες άλμπουμ
Επόμενος:Πρακτική λειτουργία: Χρησιμοποιήστε το BundleTransformer για να αντικαταστήσετε το System.Web.Optimization
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2022-11-6 22:44:06 |
Αποστολή αρχείων ένδειξης σφαλμάτων:

Μετά την εκκίνηση του προγράμματος, προσδιορίστε εάν ο κατάλογος έχει ένα αρχείο ένδειξης σφαλμάτων που δημιουργήθηκε, εάν ναι, υποβάλετε το αρχείο στην καθορισμένη διασύνδεση και, στη συνέχεια, διαγράψτε το αρχείο.
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com