Pagsusuri ng Windows 7 memory dumps Paggamit ng memory dump upang masuri ang mga pagkabigo. Pagkuha ng impormasyon tungkol sa may problemang driver

Ang pagkabigo ng system dahil sa isang kritikal na error (BSOD) ay kadalasang nangyayari dahil sa hindi tamang operasyon o pinsala sa driver, maliban sa mga kaso ng mga problema sa hardware ng computer.

Sa artikulong ito, titingnan namin ang mga pangunahing hakbang na makakatulong sa iyong malayang matukoy ang sanhi ng BSOD at, bilang resulta, alisin ito.

Susuriin namin ang mga memory dump gamit ang WinDBG debugger, kaya bago ka magsimula, kakailanganin mong i-install ang debugger at i-configure ito.
Malalaman mo kung paano gawin ito mula sa artikulo.

Interface ng WinDBG

Kapag binuksan mo ang memory dump file, makikita mo ang isang window na tulad nito:

Kapansin-pansin na ang default na command window ay independiyente sa pangunahing window ng debugger, kaya maaari mong baguhin ang laki nito, ilipat ito o magkasya ito sa debugger window sa pamamagitan ng pag-drag sa tuktok na hangganan nito sa ibabang hangganan ng toolbar gamit ang mouse, at gayundin palawakin ito sa buong screen.

Kapag binuksan mo ang dump file, magtatagal ang debugger upang kumonekta sa Internet at i-load ang mga kinakailangang simbolo para sa pag-debug. Habang naglo-load ng mga simbolo ng pag-debug, lalabas ang sumusunod na mensahe sa linya ng command ng debugger: Hindi nakakonekta ang Debugee, hindi mo magagamit ang debugger sa panahong ito.

Kapag na-load na ang mga simbolo at handa na ang debugger na suriin ang dump file, makakakita ka ng mensahe Followup: MachineOwner sa ibaba ng text window.

Ngayon ay handa ka nang simulan ang pagsusuri sa memory dump. Ang lahat ng mga command ay ipinasok sa command line na matatagpuan sa ibaba ng window.

Pagsusuri ng memory dump

Ang unang bagay na kailangan mong bigyang-pansin kapag binubuksan ang isang dump file ay ang error code, na higit na tinutukoy ang pangunahing direksyon ng error at ang pamamaraan ng pagsusuri.

Ang mga error code ay palaging tinutukoy sa hexadecimal at may form na 0xXXXXXXXXX. Ang mga error code ay ipinahiwatig sa isa sa mga sumusunod na opsyon:

  • STOP: 0x0000009F
  • 06/03/2015 0009F

Sanggunian ng error code: Windows Dev Center Bug Check Code Reference

Ang!thread command at pagsusuri ng driver

Ang pinakakaraniwang sanhi ng BSOD ay ang mga driver ng third-party (device manufacturer). Upang makita kung lumilitaw ang driver ng device sa dump, kakailanganin naming tingnan ang stack.
Patakbuhin ang utos ! thread at hanapin sa mga resulta ng pagpapatupad nito Base At Limitahan, at ang kanilang mga hexadecimal na halaga.
Sa halimbawang isinasaalang-alang ang mga ito ay:
Base fffff80000b9b000 Limitasyon fffff80000b95000

Sa uri ng command line dps pagkatapos ay pinaghihiwalay ng isang space hexadecimal value Limitahan, na sinusundan ng halaga Base. Sa kasong ito, ang pagkakasunud-sunod kung saan ang mga halaga ay tinukoy ay mahalaga - ito ay dapat na kabaligtaran ng kung ano ang ipinapakita bilang isang resulta ng pagpapatupad ng!thread na utos.

dps fffff80000b95000 fffff80000b9b000

Kapag na-load ang stack makakakita ka ng maraming linya na may teksto at mga halaga. Kabilang sa mga resulta ng utos, hanapin ang mga mensahe ng error na nagpapahiwatig ng mga driver. Sa halimbawang isinasaalang-alang, ito ang driver na igdkmd64.sys at iaStorA.sys, at sa debugger ay ganito ang hitsura:

Hanapin sa iyong computer ang tinukoy na mga driver. Ito ay hindi kinakailangan, ngunit ito ay ipinapayong gawin ito. Pagkatapos i-uninstall ang driver mula sa Device Manager o gamit ang uninstall program ng manufacturer ng device, maaaring hindi ma-uninstall ang driver, kung saan maaari mo itong i-uninstall nang manu-mano. Ang pangalawang dahilan ay maaaring ito ay isang malisyosong file ng programa (virus, trojan, minero, atbp.), at sa mga ganitong kaso ang driver ay karaniwang matatagpuan sa hindi pangkaraniwang mga folder.
Upang gawing simple ang pamamaraan, patakbuhin ang sumusunod na command sa isang command prompt na tumatakbo bilang administrator:

driverquery /v > "%USERPROFILE%\Desktop\drivers.txt"

Pagkatapos isagawa ang command, isang drivers.txt file ang gagawin sa desktop, na naglalaman ng detalyadong impormasyon tungkol sa lahat ng mga driver na naka-install sa system, kasama ang kanilang paglalarawan at ang lokasyon ng driver file.

Sa halimbawang isinasaalang-alang, ang posibleng mga salarin para sa BSOD ay ang mga driver ng Intel video card (igdkmd64.sys) at SATA/AHCI controller (iaStorA.sys).

Kapansin-pansin na ang mga driver ay hindi palaging ang sanhi ng BSOD, maaari rin itong maging bunga ng pagkabigo ng hardware, ngunit kung ang error code ay nagpapahiwatig ng isang problema sa driver, pagkatapos ay inirerekomenda na gamitin ang Windows Driver Checker.

Pag-uutos!pag-aralan -v

Ang!analyze command ay nagpapakita ng impormasyon tungkol sa kasalukuyang exception o error code, at ang -v na opsyon ay gumagawa ng verbose output. Sa kasong ito, kakailanganin namin ng data tungkol sa mga naka-block na IRP packet sa halaga Arg4, at mga halaga FAILURE_BUCKET_ID At BUCKET_ID.

Patakbuhin ang utos !irp pagdaragdag ng halaga mula sa Arg4

!irp ffffe001eb781600

Bilang resulta ng pagpapatupad ng utos, nakilala ang may problemang driver - RT630x64.sys

Sa kasong ito, ang driver ng Rt630x64.sys ay nauugnay sa adapter ng network at nagiging sanhi ng error na DRIVER_POWER_STATE_FAILURE kapag nag-shut down ang system.
Upang makakuha ng detalyadong impormasyon tungkol sa file ng driver, patakbuhin ang command

Tulad ng nakikita mo, ang petsa ng driver ay medyo luma at ito ay nagkakahalaga ng pag-update nito upang ayusin ang problema.

Konklusyon

Ang layunin ng artikulong ito ay pag-usapan ang tungkol sa isang algorithm para sa pagsusuri ng memory dump upang matukoy ang sanhi ng BSOD. Imposibleng isaalang-alang ang lahat ng mga pagpipilian sa pagsusuri sa loob ng balangkas ng isang artikulo, at maraming mga subtlety ang dumating lamang sa karanasan. Isang error code lang ang isinasaalang-alang dahil ang pagkakasunud-sunod ng pagsusuri nito ay tila sa akin ang pinaka-kawili-wili, sa kaibahan sa error 0x124, halimbawa, na sa karamihan ng mga kaso ay nagpapahiwatig ng isang problema sa hardware, o 0x116, na nagpapahiwatig ng isang problema sa driver ng video o isang problema sa video. card sa 95% ng mga kaso.

Kung hindi mo nalaman ang sanhi ng BSOD o kailangan lang ng mabilis at kwalipikadong tulong sa pagsusuri sa problema, maaari kang makipag-ugnayan sa forum anumang oras.

Asul na screen ng kamatayan(eng. Blue Screen of Death, Blue Screen of Doom, BSoD) - mga mensahe tungkol sa isang kritikal na error sa system sa mga operating system ng Microsoft Windows. Maraming nakatagpo ng asul na screen ng kamatayan sa kanilang computer/laptop ang nakikita ang tanging solusyon bilang muling pag-install ng operating system. Ngunit kung minsan ang OS ay walang kinalaman dito, ngunit ang problema ay nasa hardware. Upang hindi hulaan - bakit lumitaw ang asul na screen ng kamatayan, kailangan mong gamitin ang impormasyong ibinigay ng operating system mismo sa anyo ng mga log. Sa artikulong ito, ilalarawan ko ang hakbang-hakbang kung paano malalaman ang sanhi ng asul na screen ng kamatayan.

Kaya, ang hitsura ng asul na screen ng kamatayan ay palaging hindi inaasahan at sa maling oras, kaya marami ang walang oras upang makita kung ano ang nakasulat, at dapat itong sabihin doon (bagaman hindi sa isang tahasang anyo) ang mga dahilan para sa ang kabiguan. Una sa lahat, iminumungkahi kong i-set up ang iyong computer/laptop upang hindi ito mag-reboot kaagad pagkatapos ng pagkabigo ng system, ngunit nagbibigay sa iyo ng pagkakataong makita ang sanhi ng pagkabigo, kung hindi sapat ang impormasyong ito, kailangan mong tingnan tambakan isang file na naglalaman ng impormasyon: isang error code na may mga parameter, isang listahan ng mga driver na na-load sa RAM sa oras ng pag-crash ng system, atbp., ngunit ang impormasyong ito ay sapat na upang makilala ang may sira na driver.

Ang mga setting tungkol sa pag-reboot pagkatapos ng pagkabigo ng system ay maaaring tukuyin sa pamamagitan ng pag-right-click sa My Computer/Computer shortcut (angkop para sa Windows XP, Windows7, Windows8), pagpili sa " Mga Katangian", o pindutin ang kumbinasyon ng key + . Ang lahat ng printskirns sa ibaba ay tungkol sa Windows7, ang parehong paraan ay naka-configure sa Windows XP, Windows8, Windows8.1.

Sa "tab" Bukod pa rito"piliin sa patlang ng Boot at Pagbawi" Mga pagpipilian".

Alisan ng check ang" Magsagawa ng awtomatikong pag-reboot", upang magkaroon ng oras upang makita ang lahat ng isinulat ng asul na screen ng kamatayan. Ang line Dump file ay nagpapahiwatig ng landas kung saan mai-save ang file, na magsasaad ng mga dahilan ng pagkabigo.

Ngayon ay maaari mong maingat na pag-aralan ang impormasyon kapag lumitaw ang isang asul na screen ng kamatayan. Kung ang iyong computer ay hindi na nag-boot, at hindi mo mababago ang mga setting na ito, sa kasong ito, kapag nag-boot, pindutin ang F8 sa keyboard at piliin ang item sa menu na "Kung nabigo ang system, huwag i-reboot."

Kung ang impormasyong ipinahiwatig doon ay hindi sapat, maaari kang gumamit ng isang dump ( dmp file). Upang gawin ito, maaari mong gamitin ang tool sa pag-debug ng microsoft-microsoft, ngunit napakabigat nito at nangangailangan ng pag-install at framework 4.5. Maaari kang magtagumpay sa mas kaunting mga sakripisyo kung gagamitin mo ang programa BlueScreenView . Sa aking opinyon, isang napaka-maginhawang programa na hindi nangangailangan ng pag-install at sa Russian (idagdag ang file sa folder ng programa). Sa pamamagitan ng pagpapatakbo ng BlueScreenView.exe file, makikita mo ang interface ng programa kung saan mai-load na ang dump ng computer na ito (ang default na landas ay C:\Windows\MiniDump, kung pupunta ka sa Settings-Advanced Settings, maaari kang tumukoy ng isang ibang landas kung kinopya mo ang dump sa ibang lokasyon).

Ang isa sa mga pinakakaraniwang pagkabigo sa Windows ay ang mga pagbubukod sa system, na nakikita ng gumagamit sa anyo ng isang "asul na screen ng kamatayan" (BSOD). Bilang isang patakaran, ang nakamamatay na error na ito ay nangyayari alinman dahil sa isang malfunction ng mga driver, hardware (kadalasan kapag naglo-load ng OS) o dahil sa pagkilos ng mga virus at antivirus.

Ang asul na screen ng kamatayan ay naglalaman ng impormasyon tungkol sa mga dahilan na naging sanhi ng pagbubukod (sa anyo ng isang STOP error code ng form na 0x0000007b), mga address ng memorya na na-access kapag naganap ang isang pagbubukod, at iba pang kapaki-pakinabang na impormasyon. Ang nasabing impormasyon ay tinatawag na STOP error, ang mga variable na parameter na kung saan ay tiyak na mga address ng memorya. Minsan naglalaman din ito ng pangalan ng file na naging sanhi ng pagbubukod.

Ang lahat ng impormasyong ito ay hindi ipinapakita sa screen nang matagal (hanggang sa 100 segundo), pagkatapos nito ay nag-reboot ang computer. Sa maikling panahon na ito, ang isang memory dump ay karaniwang nabubuo at nakasulat sa isang file. Ang isa sa mga mahalagang propesyonal na pamamaraan para sa pag-diagnose ng mga pagkabigo ay ang pagtatasa ng memory dump, na tatalakayin nang detalyado sa artikulong ito.

Ano ang dump

  • dump (Ingles) – tambak ng basura; tambakan; butas; slum.
  • dump (memory dump) – 1) dump, na naglalabas ng mga nilalaman ng RAM upang i-print o i-screen; 2) isang "snapshot" ng RAM; data na nakuha bilang resulta ng paglalaglag; 3) pang-emergency na pag-alis, pag-shutdown, pag-reset.
  • paglalaglag – paglalaglag, pagtanggal ng dump.

Ang mga setting para sa pag-save ng memory dump ay naka-imbak sa Windows system registry.

Impormasyon tungkol sa memory dump sa system Registry:

Sa seksyong Windows Registry, ang isang crash dump ay tinutukoy ng mga sumusunod na parameter:

– REG_DWORD parameter AutoReboot na may halagang 0×1 (opsyon Awtomatikong i-reboot ang auxiliary window na Boot at Restore ng dialog box ng System Properties);

– REG_DWORD parameter CrashDumpEnabled na may value na 0×0, kung hindi ginawa ang memory dump; 0×1 – Kumpletuhin ang memory dump; 0×2 – Kernel memory dump; 0x3 – Maliit na memory dump (64KB);

– REG_EXPAND_SZ DumpFile parameter na may default na halaga %SystemRoot%\MEMORY.DMP (dump file storage location);

– REG_DWORD parameter LogEvent na may default na halaga na 0×1 (opsyon Log event sa system log ng Boot and Recovery window);

– REG_EXPAND_SZ MinidumpDir parameter na may default na halaga %SystemRoot%\Minidump (Maliit na dump folder na opsyon ng Boot at Recovery window);

– REG_DWORD parameter I-overwrite na may default na halaga na 0×1 (opsyon I-overwrite ang umiiral nang dump file ng Boot and Restore window);

– REG_DWORD parameter SendAlert na may default na halaga na 0x1 (opsyon Ipadala administratibong alerto ng Boot at Recovery window).

Paano gumagawa ang system ng crash dump file

Sa panahon ng boot, sinusuri ng operating system ang mga setting ng crash dump sa registry key. Kung ang hindi bababa sa isang parameter ay tinukoy, ang system ay bumubuo ng isang mapa ng mga bloke ng disk na inookupahan ng paging file sa dami ng boot at iniimbak ito sa memorya. Tinutukoy din ng system kung aling driver ng disk device ang kumokontrol sa volume ng boot, kinakalkula ang mga checksum para sa memory image ng driver, at para sa mga istruktura ng data na dapat na integer para sa driver upang maisagawa ang mga operasyon ng I/O.

Pagkatapos ng pagkabigo, sinusuri ng kernel ng system ang integridad ng page file map, disk driver, at mga istruktura ng kontrol ng disk driver. Kung ang integridad ng mga istrukturang ito ay hindi nilabag, ang kernel ng system ay tumatawag ng mga espesyal na I/O function ng disk driver na idinisenyo upang i-save ang memory image pagkatapos ng pagkabigo ng system. Ang mga function ng I/O na ito ay self-contained at hindi umaasa sa mga serbisyo ng kernel dahil ang mga program na responsable sa pagsulat ng crash dump ay hindi maaaring gumawa ng anumang mga pagpapalagay tungkol sa kung aling mga bahagi ng kernel ng system o mga driver ng device ang nasira kapag naganap ang isang pag-crash. Ang kernel ng system ay nagsusulat ng data mula sa memorya hanggang sa mapa ng sektor ng paging file (hindi nito kailangang gumamit ng mga driver ng file system).

Una, sinusuri ng kernel ng system ang katayuan ng bawat bahagi na kasangkot sa proseso ng dump. Ginagawa ito upang kapag direktang sumulat sa mga sektor ng disk, hindi ito makapinsala sa data na matatagpuan sa labas ng file ng pahina. Ang laki ng file ng pahina ay dapat na 1 MB na mas malaki kaysa sa laki ng pisikal na memorya, dahil kapag ang impormasyon ay isinulat sa dump, isang header ang nilikha na naglalaman ng crash dump signature at ang mga halaga ng ilang mga kritikal na variable ng kernel ng system. Ang header ay mas mababa sa 1MB, ngunit maaaring dagdagan (o bawasan) ng operating system ang laki ng page file nang hindi bababa sa 1MB.

Pagkatapos mag-boot ng system, sinisimulan ng Session Manager (Windows NT Session Manager; disk address - \WINDOWS\system32\smss.exe) ang mga file ng page ng system, gamit ang sarili nitong function na NtCreatePagingFile para likhain ang bawat file. Tinutukoy ng NtCreatePagingFile kung umiiral ang file ng page na sinisimulan at, kung gayon, kung mayroon itong dump header. Kung mayroong header, magpapadala ang NtCreatePagingFile ng espesyal na code sa Session Manager. Pagkatapos ay sisimulan ng Session Manager ang proseso ng Winlogon (Windows NT Logon Program; ang disk address ay \WINDOWS\system32\winlogon.exe), na inaabisuhan ng pagkakaroon ng crash dump. Winlogon ang nagpapatakbo ng SaveDump program (Windows NT Memory Copy Program; disk address - \WINDOWS\system32\savedump.exe), na sinusuri ang dump header at tinutukoy ang mga karagdagang aksyon sa isang emergency na sitwasyon.

Kung ang header ay nagpapahiwatig ng pagkakaroon ng isang dump, pagkatapos ay kinokopya ng SaveDump ang data mula sa file ng pahina patungo sa crash dump file, ang pangalan nito ay tinukoy ng REG_EXPAND_SZ na parameter ng DumpFile na seksyon ng Registry. Habang isinusulat muli ng SaveDump ang dump file, hindi ginagamit ng operating system ang bahagi ng page file na naglalaman ng crash dump. Sa panahong ito, ang dami ng virtual memory na magagamit sa system at mga application ay nababawasan ng laki ng dump (at maaaring lumabas ang mga mensahe sa screen na nagsasaad na mababa ang virtual memory). Pagkatapos ay ipinapaalam ng SaveDump sa memory manager na ang dump ay nakumpleto na ang pag-save, at inilabas nito ang bahagi ng page file kung saan ang dump ay naka-imbak para sa pangkalahatang paggamit.

Pagkatapos i-save ang dump file, itinatala ng SaveDump program ang paglikha ng crash dump sa System event log, halimbawa: "Na-reboot ang computer pagkatapos ng kritikal na error: 0x100000d1 (0xc84d90a6, 0x00000010, 0x00000000d, 0xc64d). Na-save ang memory copy: C:\WINDOWS\Minidump\Mini060309-01.dmp".

Kung pinagana ang opsyon na Magpadala ng administratibong alerto, magpapadala ang SaveDump ng alerto sa administrator.

Mga uri ng dump

  • Buong memory dump isinusulat ang buong nilalaman ng memorya ng system kapag naganap ang isang nakamamatay na error. Para sa opsyong ito, dapat ay mayroon kang paging file sa boot volume, ang laki nito ay katumbas ng halaga ng lahat ng pisikal na RAM plus 1MB. Bilang default, ang kumpletong memory dump ay nakasulat sa %SystemRoot%\Memory.dmp file. Kapag may naganap na bagong error at isang bagong full memory dump (o kernel memory dump) na file ay nilikha, ang nakaraang file ay papalitan (overwritten). Ang opsyong Full memory dump ay hindi available sa mga PC na mayroong 32-bit operating system at 2 gigabytes o higit pa sa RAM.

Kapag may naganap na bagong error at may nabuong bagong full memory dump file, papalitan ang dating file.

  • Kernel memory dump nagsusulat lamang ng memorya ng kernel, na ginagawang mas mabilis ang proseso ng pagsulat ng data sa log kapag biglang huminto ang system. Depende sa dami ng pisikal na memorya ng PC, sa kasong ito ang paging file ay nangangailangan ng 50 hanggang 800MB o isang third ng pisikal na memorya ng computer sa boot volume. Bilang default, ang kernel memory dump ay isinulat sa %SystemRoot%\Memory.dmp file.

Ang dump na ito ay hindi kasama ang hindi inilalaang memorya o memorya na inilaan sa mga program ng user-mode. Kasama lang dito ang memorya na nakalaan sa kernel at hardware-dependent layer (HAL) sa Windows 2000 at mga susunod na bersyon ng system, pati na rin ang memorya na inilaan sa mga driver ng kernel-mode at iba pang mga kernel-mode na programa. Sa karamihan ng mga kaso, ang naturang dump ay ang pinaka-kanais-nais na opsyon. Ito ay tumatagal ng mas kaunting espasyo kaysa sa isang buong memory dump, habang hindi kasama lamang ang mga sektor ng memorya na malamang na hindi nauugnay sa error.
Kapag may naganap na bagong error at isang bagong kernel memory dump file ang nalikha, ang dating file ay papalitan.

  • Maliit na memory dump nagtatala ng pinakamaliit na halaga ng kapaki-pakinabang na impormasyon na kinakailangan upang matukoy ang sanhi ng problema. Para gumawa ng maliit na memory dump, dapat na hindi bababa sa 2MB ang laki ng file ng page sa boot volume.

Ang mga maliliit na memory dump file ay naglalaman ng sumusunod na impormasyon:

  • Nakamamatay na mensahe ng error, mga parameter nito at iba pang data;
  • listahan ng mga naka-load na driver;
  • ang konteksto ng processor (PRCB) kung saan nangyari ang pagkabigo;
  • impormasyon sa proseso at konteksto ng kernel (EPROCESS) para sa prosesong naging sanhi ng error;
  • iproseso ang impormasyon at konteksto ng kernel (ETHREAD) para sa thread na naging sanhi ng error;
  • Ang kernel-mode call stack para sa thread na naging sanhi ng error.

Ang maliit na memory dump file ay ginagamit kapag ang hard disk space ay limitado. Gayunpaman, dahil sa limitadong impormasyong nilalaman nito, ang pagsusuri sa file na ito ay maaaring hindi palaging makakita ng mga error na hindi direktang sanhi ng thread na tumatakbo noong nangyari ang error.

Kapag nangyari ang susunod na error at nalikha ang pangalawang maliit na memory dump file, nai-save ang nakaraang file. Ang bawat karagdagang file ay binibigyan ng natatanging pangalan. Ang petsa ay naka-encode sa pangalan ng file. Halimbawa, ang Mini051509-01.dmp ay ang unang memory dump file na nilikha noong Mayo 15, 2009. Ang isang listahan ng lahat ng maliliit na memory dump file ay nakaimbak sa folder %SystemRoot%\Minidump.

Ang operating system ng Windows XP ay walang alinlangan na mas maaasahan kaysa sa mga nakaraang bersyon, salamat sa mga pagsisikap ng parehong mga developer ng Microsoft, mga developer ng driver ng hardware, at mga developer ng software ng application. Gayunpaman, ang mga sitwasyong pang-emergency - lahat ng uri ng mga pagkabigo at pag-crash ng system - ay hindi maiiwasan, at kung ang gumagamit ng PC ay may kaalaman at kasanayan upang alisin ang mga ito ay depende sa kung kailangan niyang gumugol ng ilang minuto sa pag-troubleshoot (halimbawa, pag-update/pag-debug ng driver o muling pag-install ng isang application). program na nagdudulot ng pag-crash ng system) - o ilang oras upang muling i-install/i-configure ang operating system at software ng application (na hindi ginagarantiyahan ang kawalan ng mga pagkabigo at pag-crash sa hinaharap!).

Maraming mga tagapangasiwa ng system ang nagpapabaya pa ring pag-aralan ang mga crash dump ng Windows, sa paniniwalang ang pagtatrabaho sa kanila ay napakahirap. Mahirap, ngunit posible: kahit na, halimbawa, ang pagsusuri ng isang dump sa sampu ay naging matagumpay, ang mga pagsisikap na ginugol sa pag-master ng pinakasimpleng mga diskarte para sa pagsusuri ng mga crash dump ay hindi magiging walang kabuluhan!..

Magbibigay ako ng mga halimbawa mula sa aking "sysadmin" na pagsasanay.

Sa lokal na network, nang walang maliwanag na dahilan ("ang hardware ay maayos, ang kawalan ng mga virus ay garantisadong, ang mga gumagamit ay may "normal na mga kamay"), maraming mga workstation na may Windows XP SP1/SP2 "nakasakay" ay bumaba. Hindi posible na i-boot ang mga computer sa normal na mode - nakarating ito sa "Pagbati" - at tumagal nang tuluyan ang pag-reboot. Kasabay nito, ang mga PC ay nag-boot sa Safe Mode.

Ang pag-aaral ng mga memory dump ay naging posible upang matukoy ang sanhi ng malfunction: ang salarin ay naging Kaspersky Anti-Virus, mas tiyak, mga sariwang database ng anti-virus (mas tiyak, dalawang database module - base372c.avc, base032c.avc) .

...May isa pang ganoong kaso. Sa isang lokal na PC na nagpapatakbo ng Windows XP SP3, naganap ang pag-reboot kapag sinusubukang buksan ang mga video file sa mga format na .avi at .mpeg. Ang pag-aaral sa memory dump ay nagpapahintulot sa amin na matukoy ang sanhi ng problema - ang nv4_disp.dll file ng NVIDIA GeForce 6600 video card driver Pagkatapos i-update ang driver, ang problema ay inalis. Sa pangkalahatan, ang nv4_disp.dll driver ay isa sa mga pinaka-hindi matatag na driver, na madalas na humantong sa BSOD.

Sa parehong mga kasong ito, ang pag-aaral sa crash memory dump ay naging posible upang mabawasan ang oras para sa pag-diagnose at pag-aalis ng malfunction sa pinakamababa (ilang minuto!).

Pagsusuri ng memory dump

Mayroong maraming mga programa para sa pagsusuri ng mga crash memory dump, halimbawa, DumpChk, Kanalyze, WinDbg.

Tingnan natin ang pagsusuri sa mga crash memory dump gamit ang WinDbg program (bahagi ng Debugging Tools para sa Windows).

Pag-install ng Mga Tool sa Pag-debug

  • bisitahin ang Web site ng Microsoft Corporation http://www.microsoft.com/whdc/devtools/debugging/default.mspx;
  • i-download ang Debugging Tools para sa Windows, halimbawa, para sa isang 32-bit na bersyon ng Windows magagawa ito sa pahina ng I-download ang Debugging Tools para sa Windows;
  • pagkatapos mag-download, patakbuhin ang file ng pag-install;
  • sa Debugging Tools para sa Windows Setup Wizard window, i-click ang Susunod;
  • sa window na may kasunduan sa lisensya, piliin ang Sumasang-ayon ako -> Susunod na switch;
  • sa susunod na window, piliin ang uri ng pag-install (bilang default, ang mga tool sa pag-debug ay naka-install sa folder na \Program Files\Debugging Tools para sa Windows) -> Susunod -> I-install -> Tapusin;
  • Upang bigyang-kahulugan ang mga memory dump file, dapat mo ring i-download ang Symbol Packages para sa iyong bersyon ng Windows - pumunta sa pahina ng Download Windows Symbol Packages;
  • piliin ang iyong bersyon ng Windows, i-download at patakbuhin ang file ng pag-install ng Symbol Packages;
  • sa window na may kasunduan sa lisensya, i-click ang Oo;
  • sa susunod na window, piliin ang folder ng pag-install (ang default ay \WINDOWS\Symbols) -> OK -> Oo;
  • Sa window ng Microsoft Windows Symbols na may mensaheng "Kumpleto na ang pag-install," i-click ang OK.

Paggamit ng WinDbg para Pag-aralan ang Crash Dumps

  • patakbuhin ang WinDbg (naka-install sa folder na \Program Files\Debugging Tools para sa Windows);
  • piliin ang menu File -> Symbol File Path...;
  • sa window ng Symbol Search Path, i-click ang Browse... button;
  • sa window ng Browse Folder, tukuyin ang lokasyon ng folder ng Symbols (bilang default – \WINDOWS\Symbols) -> OK -> OK;
  • piliin ang menu File -> Open Crash Dump... (o pindutin ang Ctrl + D);
  • sa Open Crash Dump window, tukuyin ang lokasyon ng Crash Dump File (*.dmp) -> Buksan;
  • sa window ng Workspace na may tanong na "I-save ang impormasyon para sa workspace?", lagyan ng check ang Don't ask again -> No box;
  • Magbubukas ang Command Dump window sa WinDbg window<путь_и_имя_файла_дампа>may pagtatasa ng dump;
  • suriin ang pagtatasa ng memory dump;
  • sa seksyong "Pagsusuri ng Bug" ang posibleng dahilan ng pag-crash ay ipahiwatig, halimbawa, "Marahil ay sanhi ng: smwdm.sys (smwdm+454d5)";
  • upang tingnan ang detalyadong impormasyon, i-click ang link na "!analyze -v" sa linyang "Gamitin ang !analyze -v upang makakuha ng detalyadong impormasyon sa pag-debug";
  • isara ang WinDbg;
  • Gamitin ang impormasyong nakuha upang maalis ang sanhi ng problema.

Halimbawa, sa sumusunod na screenshot ang sanhi ng malfunction ay ang nv4_disp.dll file ng driver ng video card.

Ang lahat ng mga sistema ng Windows, kapag may nakitang nakamamatay na error, gumawa ng crash dump (snapshot) ng mga nilalaman ng RAM at i-save ito sa hard drive. May tatlong uri ng memory dump:

Full memory dump – sine-save ang buong nilalaman ng RAM. Ang laki ng imahe ay katumbas ng laki ng RAM + 1 MB (header). Napakadalang gamitin, tulad ng sa mga system na may malaking halaga ng memorya ang laki ng dump ay magiging masyadong malaki.

Kernel memory dump – nagse-save ng impormasyon ng RAM na nauugnay sa kernel mode lamang. Ang impormasyon ng user mode ay hindi nai-save dahil hindi ito naglalaman ng impormasyon tungkol sa sanhi ng pag-crash ng system. Ang laki ng dump file ay depende sa laki ng RAM at nag-iiba mula sa 50 MB (para sa mga system na may 128 MB ng RAM) hanggang 800 MB (para sa mga system na may 8 GB ng RAM).

Maliit na memory dump (mini dump) - naglalaman ng medyo maliit na halaga ng impormasyon: isang error code na may mga parameter, isang listahan ng mga driver na na-load sa RAM sa oras ng pag-crash ng system, atbp., ngunit ang impormasyong ito ay sapat na upang makilala ang may sira na driver . Ang isa pang bentahe ng ganitong uri ng dump ay ang maliit na laki ng file.

Pag-setup ng system

Upang matukoy ang driver na naging sanhi nito, sapat na para sa amin na gumamit ng isang maliit na memory dump. Upang makapag-save ang system ng mini dump sa panahon ng pag-crash, dapat mong gawin ang mga sumusunod na hakbang:

Para sa Windows Xp Para sa Windows 7
  1. Ang computer ko Mga Katangian
  2. Pumunta sa tab Bukod pa rito;
  3. Mga Parameter;
  4. Sa bukid Pagsusulat ng Impormasyon sa Debug pumili Maliit na memory dump (64 KB).
  1. Mag-right-click sa icon Computer mula sa menu ng konteksto piliin Mga Katangian(o ang kumbinasyon ng Win+Pause na key);
  2. Sa kaliwang menu, mag-click sa item Mga Advanced na Setting ng System;
  3. Pumunta sa tab Bukod pa rito;
  4. Sa field na I-download at pagbawi, dapat mong i-click ang pindutan Mga Parameter;
  5. Sa bukid Pagsusulat ng Impormasyon sa Debug pumili Maliit na memory dump (128 KB).

Matapos makumpleto ang lahat ng mga manipulasyon, pagkatapos ng bawat BSoD isang file na may extension na .dmp ay ise-save sa C:\WINDOWS\Minidump folder. Ipinapayo ko sa iyo na basahin ang materyal na "". Maaari mo ring lagyan ng tsek ang kahon na “ Palitan ang kasalukuyang dump file" Sa kasong ito, ang bawat bagong crash dump ay isusulat sa luma. Hindi ko inirerekomenda na i-enable ang opsyong ito.

Pagsusuri ng crash dump gamit ang BlueScreenView

Kaya, pagkatapos lumitaw ang Blue Screen of Death, nag-save ang system ng bagong crash dump. Upang pag-aralan ang dump, inirerekomenda ko ang paggamit ng BlueScreenView program. Maaari itong i-download nang libre. Ang programa ay medyo maginhawa at may isang madaling gamitin na interface. Pagkatapos i-install ito, ang unang bagay na kailangan mong gawin ay tukuyin ang lokasyon para sa pag-iimbak ng mga dump ng memorya sa system. Upang gawin ito, pumunta sa item ng menu " Mga pagpipilian"at piliin ang" AdvancedMga pagpipilian" Piliin ang radio button " Magkargamula saangsumusunodMini Dumpfolder” at tukuyin ang folder kung saan naka-imbak ang mga dump. Kung ang mga file ay naka-imbak sa C:\WINDOWS\Minidump folder, maaari mong i-click ang " Default" I-click ang OK at pumunta sa interface ng programa.

Ang programa ay binubuo ng tatlong pangunahing mga bloke:

  1. Pangunahing menu block at control panel;
  2. Crash dump list block;
  3. Depende sa mga napiling parameter, maaaring naglalaman ito ng:
  • isang listahan ng lahat ng mga driver sa RAM bago lumitaw ang asul na screen (bilang default);
  • isang listahan ng mga driver na matatagpuan sa RAM stack;
  • screenshot ng BSoD;
  • at iba pang mga halaga na hindi namin gagamitin.

Sa block ng memory dump list (minarkahan ng numero 2 sa figure), piliin ang dump na interesado kami at tingnan ang listahan ng mga driver na na-load sa RAM (minarkahan ng numero 3 sa figure). Kulay pink ang mga driver na nasa memory stack. Sila ang dahilan ng BSoD. Susunod, pumunta sa Main Menu ng driver, tukuyin kung saang device o program sila nabibilang. Una sa lahat, bigyang-pansin ang mga di-system na file, dahil ang mga file ng system ay na-load sa RAM sa anumang kaso. Madaling makita na ang may sira na driver sa larawan ay myfault.sys. Sasabihin ko na ang program na ito ay partikular na inilunsad upang maging sanhi ng isang Stop error. Matapos matukoy ang may sira na driver, kailangan mong i-update ito o alisin ito sa system.

Upang ang programa ay magpakita ng isang listahan ng mga driver na matatagpuan sa memory stack kapag naganap ang isang BSoD, kailangan mong pumunta sa menu item " Mga pagpipilian"Mag-click sa menu" IbabaPaneMode"at piliin ang" TangingMga driverNatagpuanSasalansan” (o pindutin ang F7 key), at para magpakita ng screenshot ng error, piliin ang “ AsulScreensaXPEstilo” (F8). Upang bumalik sa listahan ng lahat ng mga driver, dapat mong piliin ang " LahatMga driver” (F6).