-reklama-

Odpowiedz 
 
Ocena wątku:
  • 0 głosów - 0 średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Rozwiązywanie problemów z Bluescreen – ekran śmierci
Kobacabana Offline
Początkujący
**

Liczba postów: 47
Dołączył: May 2013
Reputacja: 1
Post: #1
Żarówka Rozwiązywanie problemów z Bluescreen – ekran śmierci
Bluescreen (BSOD) - szukanie przyczyny powstawania komunikatów oraz czytanie plików DMP

[Obrazek: critical_structure_corruption.jpg]

Kod:
Komputer napotkał problem i należy go uruchomić ponownie. Trwa zbieranie informacji o błędzie. Po zakończeniu tego procesu komputer zostanie automatycznie uruchomiony ponownie. I tu proces ukończenia naprawy komputera.

Aby dowiedzieć się więcej, można później wyszukać w trybie online ten błąd:
CRITICAL_STRUCTURE_CORRUPTION

Bluescreen-y, czyli błędy sprzętowe oraz programowe w systemie Windows mogą powstawać na wskutek różnych przyczyn. Czasami może to być awaria sprzętowa np. uszkodzenie pamięci RAM (jak sprawdzić pamięć RAM – opis i instrukcja MemTest) albo też awaria programowa. Z komunikatów, jakie otrzymujemy ciężko jednak cokolwiek odczytać. Czasami pomaga wrzucenie komunikatu do wyszukiwarki, ale nie zawsze to pomoże, bo problem może być bardziej złożony lub też mogą istnieć więcej jak jedna przyczyna bluescreen. Ponadto komunikat z błędem czasami jest tak złożony, ze trudno go rozszyfrować. Jednak możemy użyć narzędzia (program) do analizy plików DMP.

Pliki DMP tworzy system Windows w C:\Windows\minidump i są to pliki, w których są zapisywane krytyczne momenty systemu Windows jak np. bluescreen, a dokładnie, co tworzy takie problemy. Aby odczytać taki plik potrzebujemy narzędzia do analizy plików DMP.

Odczytanie plików zrzutu DMP

Warto skorzystać z darmowego rozwiązania firmy Microsoft o nazwie WinDbg - Microsoft Debugging Tools x86 (jest wersja x32 oraz x64). Po zainstalowaniu programu można rozpocząć poszukiwanie przyczyn błędu. Informacja o błędzie jest zapisywana w plikach zrzutu pamięci DMP. Każdy plik DMP posiada unikalną nazwę. Po dacie oraz godzinie wystąpienia problemu możemy zlokalizować, kiedy wystąpił ostatni problem, (jeśli mamy więcej plików .dmp w katalogu).

Mając już zainstalowany program uruchamiamy WinDbg, aby wyświetlić prawidłowo wszystkie dziwne znaki i symbole należy w menu programu File wybrać opcję Symbol File Path (lub wcisnąć kombinację klawiszy Ctrl+S). W nowym oknie należy wkleić poniższy kod i zatwierdzić klikając OK. Symbole ściągniemy na dysk.
Kod:
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

Wczytanie symboli za pierwszym razem może trochę dłużej porwać, ale odczytanie pliku zrzutu staje się wtedy łatwiejsze.

W oknie programu, z menu wybieramy File i Open Crush Dump (lub naciskamy Ctrl+D), po czym wskazujemy plik DMP, który chcemy otworzyć. Musimy sobie taki plik wyciągnąć z katalogu, jeśli nasz badany system nie pozwala się uruchomić. Jeżeli pokaże się nam ekran z pytaniem, czy zapisać miejsce pracy, odpowiadamy Tak. W ten sposób ustawimy sobie katalog pracy z plikami.

Po załadowaniu pliku i odczytaniu raportu będziemy mieli standardowy raport, możemy go rozszerzyć o więcej informacji klikając w raporcie na Use !analyze -v to get detailed debugging information w ten sposób raport zostanie rozszerzony o dokładniejsze informacje. Dla nas najważniejsze są dwie linijki BugCheck i nr błędu oraz Probably caused by:

Kod:
BugCheck 109, {a3a01f5894602a64, b3b72bdee6e01973, fffff80000570000, 19}
Probably caused by : Unknown_Image ( ANALYSIS_INCONCLUSIVE )

Te dwie linijki mogą wskazywać na program, na bibliotekę .dll w komputerze, albo jak w moim przypadku dość dziwny problem CRITICAL STRUCTURE CORRUPTION, który nawet w analizie z pliku .dmp, jest trudny do rozwiązania. Oczywiście opis na stronie Microsoft jest podany, kiedy taki problem może się pojawiać i zazwyczaj występuje to w sytuacji konfliktu programowego (może zachodzić konflikt sterowników, niewłaściwe oddziaływanie na kernel systemowy), ale dokładnego rozwiązania jak ten problem BugCheck 109 usunąć Microsoft nie podaje.

Oprócz pełnej informacji o błędzie, dość pomocnym polem jest PROCESS_NAME. W polu tym podana jest nazwa procesu podczas, którego wykonywania doszło do błędu. Zazwyczaj jest podany jakiś program, który tworzy problem, ale jak w moim przypadku widać problem zachodzi w systemie, jednak nie ma dokładnych informacji, co powoduje taki problem i jak ten problem rozwiązać samemu.

Mój przykład analizowanego pliku .dmp w WinDbg:
Kod:
Microsoft (R) Windows Debugger Version 6.11.0001.402 X86
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\DMP\my_file.dmp]
Mini Kernel Dump File: Only registers and stack trace are available

Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 7 Kernel Version 9600 MP (2 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 9600.16384.amd64fre.winblue_rtm.130821-1623
Machine Name:
Kernel base = 0xfffff803`d1879000 PsLoadedModuleList = 0xfffff803`d1b409b0
Debug session time: Fri Aug 29 13:45:14.301 2014 (GMT+2)
System Uptime: 0 days 1:10:53.132
Loading Kernel Symbols
...............................................................
................................................................
...................
Loading User Symbols
Loading unloaded module list
................
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 109, {a3a01f5894602a64, b3b72bdee6e01973, fffff80000570000, 19}

Probably caused by : Unknown_Image ( ANALYSIS_INCONCLUSIVE )

Followup: MachineOwner
---------

0: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

CRITICAL_STRUCTURE_CORRUPTION (109)
This bugcheck is generated when the kernel detects that critical kernel code or
data have been corrupted. There are generally three causes for a corruption:
1) A driver has inadvertently or deliberately modified critical kernel code
or data. See http://www.microsoft.com/whdc/driver/kernel/64bitPatching.mspx
2) A developer attempted to set a normal kernel breakpoint using a kernel
debugger that was not attached when the system was booted. Normal breakpoints,
"bp", can only be set if the debugger is attached at boot time. Hardware
breakpoints, "ba", can be set at any time.
3) A hardware corruption occurred, e.g. failing RAM holding kernel code or data.
Arguments:
Arg1: a3a01f5894602a64, Reserved
Arg2: b3b72bdee6e01973, Reserved
Arg3: fffff80000570000, Failure type dependent information
Arg4: 0000000000000019, Type of corrupted region, can be
    0 : A generic data region
    1 : Modification of a function or .pdata
    2 : A processor IDT
    3 : A processor GDT
    4 : Type 1 process list corruption
    5 : Type 2 process list corruption
    6 : Debug routine modification
    7 : Critical MSR modification

Debugging Details:
------------------


BUGCHECK_STR:  0x109

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

PROCESS_NAME:  System

CURRENT_IRQL:  2

LAST_CONTROL_TRANSFER:  from 0000000000000000 to fffff803d19c90a0

STACK_TEXT:  
ffffd000`2377a1c8 00000000`00000000 : 00000000`00000109 a3a01f58`94602a64 b3b72bde`e6e01973 fffff800`00570000 : nt!KeBugCheckEx


STACK_COMMAND:  kb

SYMBOL_NAME:  ANALYSIS_INCONCLUSIVE

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: Unknown_Module

IMAGE_NAME:  Unknown_Image

DEBUG_FLR_IMAGE_TIMESTAMP:  0

BUCKET_ID:  BAD_STACK

Followup: MachineOwner


Pomysł W moim przypadku z racji, że nie miałem zrobionej ostatniej prawidłowej kopii jedynym sensownym rozwiązaniem problemu CRITICAL STRUCTURE CORRUPTION było zainstalowanie na nowo systemu Windows.

Pomysł Dokładniejszego szukania rozwiązań problemów z bluescreen, jeśli już poznamy analizę zrzutów z plików .dmp możemy szukać w oparciu o błędy systemu Windows (kody BSOD) - [Kod błędu - Bug Check], które znajdziemy w interencie oraz na stronach Microsoft.

8 lipca 2014 dzień, który przeszedł do historii: Niemcy - Brazylia 7:1
(Ten post był ostatnio modyfikowany: 30-08-2014 14:26 przez Kobacabana.)
30-08-2014 14:07
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Botek Offline
Przyjaciel
**

Liczba postów: 78
Dołączyłczy: Nov 2012
Reputacja: OK
Post: #
Reklama
Dzisiaj 07:15
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości