Ενας από τους μεγάλους εφιάλτες των χρηστών πληροφορικής και φυσικά και των administrators ήταν και είναι τα system crashes, που πολλές φορές συνοδεύονται από μπλε οθόνες με πολλά και ακαταλαβίστικα νούμερα και σύμβολα. Είναι από τις στιγμές που μετανιώνεις που δεν την έχεις κοπανίσει ακόμα για το χωριό για να ασχοληθείς με τα κτήματα και τα ζώα και είσαι αναγκασμένος να αντιμετωπίσεις και πάλι το «θηρίο».
Πριν αρχίσετε να γράφετε εκείνο το περίφημο paraitisi.doc κείμενο, πριν αρχίσετε τις προσευχές και τις κατάρες ...χαμογελάστε! Υπάρχει Ελπίς! Τα κτήματα και οι φάρμες μπορούν να περιμένουν!
Καταρχήν να επισημάνω ότι κάθε πρόβλημα του λειτουργικού αφήνει σχεδόν πάντα κάποιο ίχνος πίσω του, κάποιο μήνυμα, κάποιο log, και, στην περίπτωση ενός system crash, κάποιο αρχείο dump. Το dump αρχείο είναι ένα αρχείο στο οποίο το σύστημα κατά την φάση του σκασίματος γράφει ένα κομμάτι (64Κ ή 256K) ή και ολόκληρη την μνήμη (Kernel) που έχει εκείνη την στιγμή στον δίσκο C:. Για να γραφτεί ολόκληρη η μνήμη σε αυτό το αρχείο θα πρέπει το pagefile να είναι μεγαλύτερο από το μέγεθος της μνήμης κατά τουλάχιστον 10ΜΒ και τοποθετημένο στο ίδιο partition με το λειτουργικό. Ετσι, στην περίπτωση που έχουμε ένα “Blue Screen” στον server μας, ένα αρχείο memory.dmp θα δημιουργηθεί στο directory του λειτουργικού.
Τι το κάνουμε αυτό το αρχείο? Για να σας προλάβω από κακές σκέψεις, πρέπει εδώ να πω ότι υπάρχουν ειδικά εργαλεία για να διαβάσουμε τα αρχεία dump, τα περίφημα Debugging Tools. Φίλε administrator, γίνε κι εσύ ένας μικρός debugger και χρησιμοποίησε τα debugging tools ως εξής:
1. Κατεβάστε και εγκαταστήστε τα debugging tools για την έκδοση του λειτουργικού πάνω στο οποίο θα τα τρέξετε, δηλαδή x86 ή x64
2. Εγκαταστήστε τα support tools προκειμένου να χρησιμοποιήσετε το dumpchk για να ελέγξετε αν το memory.dmp αρχείο είναι corrupted.
3. Κατεβάστε τα Debugging Symbols που αφορούν την έκδοση του λειτουργικού από το οποίο προέρχεται το dump. Αν ας πούμε ο server που έχει το πρόβλημα είναι Windows 2003 x64 Service Pack 1 θα πρέπει να κατεβάσουμε τα ανάλογα symbols και να τα κάνουμε extract σε ένα folder του δίσκου μας στο PC στο οποίο έχουμε εγκαταστήσει και τα tools.
4. Βάλτε στο DVD του υπολογιστή σας και το media με το λειτουργικό του server (στην περίπτωση μας Windows 2003 x64 Service με ενσωματωμένο το Service Pack 1)
5. Τρέχουμε από την γραμμή εντολών την εντολή “windbg -y SymbolPath -i ImagePath -z DumpFilePath” ή όπως στο παράδειγμα:
windbg -y “d:\symbols\w2k3_x64_sp1” -i e:\i386 -z “d:\dumps\memory.dmp”
Με αυτή την εντολή θα ανοίξει το GUI του windbg και θα μας εμφανίσει το αποτέλεσμα της ανάλυσης μέσα σε αστερίσκους (!), π.χ Fault Module: Http.sys, HTTP!UlLargeMemSetData+39 Ενα απλό search στο Internet σχετικά με αυτό το μήνυμα λάθους θα σας οδηγήσει στην λύση του προβλήματος και πιο κοντά στο bonus και στην αύξηση στο τέλος της χρονιάς!
Καλή Επιτυχία,
Βαγγέλης Σκυβαλάκης
ΤΑΜ @ MSFT