Eğer sözde Mavi ekran Windows 10'da ölüm ve sinir komasına girmeye hazırsınız, kendinizi toparlayın ve sorunu çözmeye çalışın. Başlangıç ​​olarak, bu uğursuz mesajın size kritik bir konuda sinyal verdiğini söylemeye değer. Sistem hatası. Ayrıca, Windows mavi ölüm ekranına düştüğünde ve cihaz yeniden başlatıldığında, anı yakalamak ve hata kodunu okumak için zamana sahip olmak her zaman mümkün değildir. olduğunu hemen not ediyoruz. büyük miktar Bu sorunun çözümleri ve mavi ekranın nedenleri. Bu yazıda, düşünmeye çalışacağız olası nedenler mavi bir mutluluk ekranının yanı sıra yaklaşık Muhtemel çözümler Sorunlar.

Vakaların büyük çoğunluğunda, mavi ölüm ekranı bir BAD_POOL_CALLER - 0x000000c2 hatasını durdurur. Bu hatayı teşhis etmek açıkçası zor, ancak bu hata örneğini kullanarak bir sonraki eylemlerinizin algoritmasını açıklamaya çalışmamız mümkün.

Bir sorunu doğru bir şekilde teşhis etmek için önce analiz etmeniz gerekir. özel dosya minidump (bellek dökümü) adı verilen sistem. Bu tür dosyaların oluşturulması sistemde bir arızaya yol açar, ayrıca bizi bilgilendirebilirler - arızaya tam olarak neyin yol açtığını.

1. Küçük bir bellek dökümünün bu tür otomatik kaydını etkinleştirmek için (varsayılan olarak devre dışıdır), bilgisayarın özelliklerine gidin ve bölüme gidin " Ekstra seçenekler sistemleri" (bu dahil etme yalnızca Windows 10 için değil, tüm sistemler için sağlanır):

Kural olarak, tüm minidump dosyaları mavi bir ölüm ekranı (BSOD) oluştuğunda kaydedilir ve bunları C:\Windows\Minidump klasöründe bulabilirsiniz. Dosya adının içerdiği dikkat çekicidir. geçerli tarih- oluşturulduğunda, özellikle birden fazla dosya olabileceği düşünüldüğünde, hatanın meydana geldiği tarihi belirlemeyi çok daha kolay hale getirir.

Küçük kadın belleği mini dökümünün şifresini çözmenin iki yolu

İlk yol, oldukça popüler BlueScreenView yardımcı programını kullanmaktır. Bu yardımcı program, bir bellek dökümünü analiz etmek için de iyi bir seçenek olabilir. Bu yardımcı programın kullanımı, sorunlu bir sürücüyü tanımlamanın bir yolu olarak kullanışlıdır.

Ayrıca, BSOD'yi (mavi ölüm ekranı) sistem çöktüğünde olduğu gibi donmuş bir çerçevede görüntülemek için kullanılabilmesi özellikle dikkate değerdir. Hatanın saatini ve tarihini, sürücü veya modül ayrıntılarını sürüm ve kısa açıklama. Ayrıca, yardımcı program Rusça da dahil olmak üzere birçok dilde mevcuttur. Dolayısıyla, BSOD sırasında bellek dökümlerini hızlı bir şekilde analiz etmeniz gerekiyorsa, BlueScreenView yardımcı programı tam da ihtiyacınız olan şeydir.

İçin ikinci yöntem Windows için Hata Ayıklama Araçları'nı yüklemeniz ve ayrıca bsdos_utility yardımcı programını indirmeniz gerekir. Ayrıca, bsdos_utility.cmd komut dosyasını paketinden çıkardıktan sonra, onu C:\ sürücüsüne taşımalısınız (ayrı bir klasör oluşturabilirsiniz, ancak komut dosyası başlatma adresi dizesinin örneğimizden farklı olacağını unutmayın). Ardından komut satırına şunu yazın:

C:\bsdos_utility.cmd

C:\Windows\Minidump\ listesindeki tüm dökümlerin listesini görüntüledikten sonra, komut dosyası hangi dökümün analiz edilmesi gerektiğini soracaktır. Komut dosyasını çalıştırırken istediğiniz mini dökümü kendiniz de seçebilirsiniz:

Bu şekilde kütleyi tespit etmek mümkündür. Windows hataları Bir BSOD'ye neden olan 10, mavi ekrana neden olan sorunlu .exe programlarının yanı sıra.

Kurulacak bileşenleri seçmenin bir sonraki adımında ( Yüklemek istediğiniz özellikleri seçin) sadece ihtiyacımız olanı işaretleyin - Hata ayıklama araçları pencereler için ve bas Düzenlemek

İnternetten bir dizi yardımcı program indirilecek ve ilk ekranda belirtilen klasöre yüklenecektir.

Kurulum tamamlandıktan sonra “Başlat” menüsünde veya kısayol grubundaki başlangıç ​​ekranında buluyoruz. Windows Kitleri Yarar rüzgar ve yönetici haklarıyla çalıştırın

Herhangi bir nedenle kısayol bulunamadıysa, yürütülebilir dosyayı kurulum dizininden çalıştırabilirsiniz - C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\windbg.exe

Programın ana menüsünde rüzgar eşyaları seç dosya > Sembol Dosya Yolu. Açılan pencerede, sembol önbelleğinin yerel dizinine ve çevrimiçi kaynağına let'i tanımlayan bir satır ekleyin:

SRV*C:\Windows\symbol_cache*http://msdl.microsoft.com/download/symbols

Ana menüdeki maddeleri seçerek ayarları kaydediyoruz. dosya > Çalışma Alanını Kaydet

Menüden seçerek bellek döküm dosyasını açın dosya > Kilitlenme Dökümü'nü aç...

Bir dosya seçin HAFIZA.DMP(varsayılan olarak C:\Windows dizininde bulunur) ve açık

Hangi yürütülebilir modülün sistemin çalışmayı durdurmasına neden olduğu hakkında bilgi görünecektir. Bir köprüye tıklayarak !analiz-v sistemin durma hatası anındaki durumu hakkında daha detaylı bilgi alabilirsiniz.

Aynı bilgiler, yaklaşık olarak aşağıdaki komut dizisi kullanılarak komut satırı kullanılarak da elde edilebilir:

cd /d" C:\Program Dosyaları (x86)\Windows Kitleri\8.1\Hata Ayıklayıcılar\x64\" kd -z "D:\DOWNLOADS\VM05\MEMORY.DMP " .logopen C:\Debuglog.txt .sympath srv*C:\Windows\symbol_cache*http://msdl.microsoft.com/download/symbols

Bu örnekte, tüm döküm ayrıştırma bilgileri okunabilir biçimde C:\Debuglog.txt dosyasına dökülecektir.

Bilgi kaynakları:

İyi günler, sevgili meslektaşlarım ve blog sitesinin okuyucuları. Bugün size Windows 10 Redstone bellek dökümünü nasıl analiz edeceğinizi anlatmak istiyorum. Bu, çoğu durumda, bilgisayarınız yeniden başlatıldıktan sonra bir hatayla mavi bir ölüm ekranı aldığınızda yapılır. Ve bu analiz başarısızlığın nedenini anlamaya yardımcı olur.

Windows 10 bellek dökümü ayarlama

Ve böylece, Windows 10 Redstone işletim sisteminde bir bellek dökümü nedir. sana yukarıda anlattım yaygın neden bir sistem belleği dökümünün göründüğü ve bunlar mavi ölüm ekranlarıdır. Görünüşlerinin nedenleri çok kapsamlıdır:

Bu sadece küçük bir genel liste, mavi ekranlardan bir sürü hata kodu olduğu için en güncellerini vereceğim.

Görevimiz, teşhis için bu dosyaları bulabilmek ve sorun hakkında bilgi almak için bunları yorumlayabilmektir.

Windows 10 kilitlenme dökümü nerede yapılandırılır?

Başlamak için, Windows 10 kilitlenme belleği dökümünden sorumlu olan ayarın nerede yapıldığını bulalım.Windows 10 başlat düğmesine sağ tıklayın ve bağlam menüsü Sistem'i seçin.

Açılan Sistem penceresinde sol taraftasınız. üst köşe Gelişmiş Sistem Seçenekleri'ni seçin.

Windows 10 bellek dökümünün yapılandırıldığı yer burasıdır.Önyükleme ve Kurtarma'daki ayarlar öğesini tıklayın.

Windows 10 bellek dökümü ayarlarından aşağıdakileri not etmek istiyorum:

  • içinde bir olay kaydetme sistem günlüğü> burada mavi ekranla ilgili bilgiler günlüklere eklenecek işletim sistemi.
  • Koşmak otomatik yeniden başlatma> bir hatadan sonra devam etmek için
  • Hata ayıklama bilgilerini yaz > döküm dosyası türünü seçmenize olanak tanır, daha fazlası aşağıdadır.
  • Kullanışlı bir onay kutusu olan mevcut döküm dosyasını değiştirin, çünkü bu dökümler onlarca gigabayt ağırlığında olabileceğinden, küçük ssd sürücüler için çok önemlidir.

Bellek dökümü türleri

Hata ayıklama bilgilerini kaydetme seçeneklerinin nasıl farklılık gösterdiğine bakalım.

  • Küçük bellek dökümü 256 KB: Küçük bellek döküm dosyaları aşağıdaki bilgileri içerir:

– önemli hata mesajı, parametreleri ve diğer veriler;

– yüklü sürücülerin listesi;

– işlemci bağlamı ( PRCB) arızanın meydana geldiği;

İŞLEM) hataya neden olan süreç için;

– işlem bilgisi ve çekirdek bağlamı ( ETHREAD) hataya neden olan iş parçacığı için;

– hataya neden olan iş parçacığı için çekirdek modu çağrı yığını.

Çok az şeyiniz olduğunda kullanılır disk alanı senin üzerinde yerel disk. Bu şekilde bağış yapıyoruz kullanışlı bilgi, mavi ekranı teşhis etmek için yeterli olmayabilir.

Minidump, C:\Windows\Minidump yolu boyunca depolanır.

  • Çekirdek bellek dökümü > yalnızca çekirdek belleği kaydeder. Bu durumda PC'nin fiziksel bellek miktarına bağlı olarak, disk belleği dosyası 50 ila 800 MB veya önyükleme birimindeki bilgisayarın fiziksel belleğinin üçte biri.
  • Tam bellek dökümü> iyi, her şey adından açık. Kesinlikle her şeyi yazıyor, bu mavi ekran hakkında maksimum bilgi, sorunun yüzde yüz teşhisini veriyor.

C:\Windows\Memory.dmp yolu üzerinde bulunur

  • Aktif bellek dökümü > ana makinenin aktif belleği buraya gelir, bu daha çok sunucu platformları için bir işlevdir, çünkü sanallaştırma için kullanılabilirler ve sanal makineler hakkındaki bilgilerin döküme girmemesi için bu seçenek icat edildi.

Bu kısa not, acil bir durumda emrinize amade olmak için sistemi nasıl yapılandırabileceğinizi göstermeyi amaçlamaktadır. çöplük Windows belleği , yani, mavi bir ölüm ekranının (BSOD) ortaya çıkmasıyla karakterize edilen, kritik bir arıza durumunda oluşturulabilecek bir döküm. Genel olarak çöplük nedir, neden buna ihtiyacımız var ve nedir, hangi sorunları çözmek için tasarlanmıştır ve hangi bilgileri içerir?

Bellek dökümü, çalışma alanlarına ek olarak, bir işlemin, çekirdeğin veya tüm işletim sisteminin çalışan belleğinin içeriğidir. Ek Bilgiler işlemci kayıtlarının durumu, yığının içeriği ve diğer hizmet yapıları hakkında.

Bu içeriğe neden ihtiyacımız var, yani. Windows bellek dökümü? Belki de en yaygın bellek dökümü, işletim sisteminin tamamen durmasına neden olan bir sistem çökmesinin () nedenlerini araştırmak için kullanılır. Buna ek olarak, hafıza durumu başka amaçlar için kullanılabilir. Ayrıca, herhangi bir arıza hakkında bilgi almanın tam anlamıyla tek yolunun bir bellek dökümü olduğu gerçeği de önemlidir! Ve bir sistem bellek dökümünü kaldırmak (almak), aslında, sistemin fiziksel belleğinin içeriğinin anında yazdırılmasını (kopyasını) almanın tek doğru yöntemidir.

Dökümün içeriği, arıza anındaki belleğin durumunu ne kadar doğru yansıtacak olursa, acil durumu o kadar çok analiz edebileceğiz. Bu nedenle, sistemin fiziksel belleğinin tam olarak mevcut kopyasını kesinlikle kesin bir şekilde elde etmek son derece önemlidir. belirli ançarpışmadan hemen önceki zaman. Ve bunu yapmanın tek yolu tam bir kilitlenme dökümü oluşturmaktır. Nedeni oldukça önemsizdir - bir arıza veya yapay olarak simüle edilmiş bir durumun bir sonucu olarak sistem belleğinin kilitlenme dökümü meydana geldiğinde, sistem şu anda acil durum işlevlerinin kontrolünü (KeBugCheckEx) alma durumundadır. kesinlikle değişmemiş (statik) durum, bu nedenle, çökmenin meydana geldiği an ile Veriler ortama yazıldığı zaman, fiziksel belleğin içeriğini hiçbir şey değiştirmez ve diske orijinal durumunda yazılır. Eh, bu teoride, ancak bazen hayatta, ancak hatalı donanım bileşenleri nedeniyle, bellek dökümünün kendisinin zarar görebileceği veya döküm kayıt işlemi sırasında istasyonun donabileceği durumlar vardır.

Çoğu durumda, bir kilitlenme dökümü oluşturma sürecinin başlatıldığı andan, bellek içeriğinin diske yazıldığı ana kadar, bellekteki bilgiler değişmeden kalır.

Teorik olarak, bellek "ayak izinin" statik (değişmezliği), çökme hakkında bilgi görüntüleyen ve bir bellek dökümü oluşturma sürecini başlatan KeBugCheckEx işlevi çağrıldığında, sistemin zaten tamamen durdurulduğu ve sistemin zaten tamamen durdurulduğu gerçeğiyle açıklanır. fiziksel belleğin içeriği disk belleği dosyası tarafından diskte işgal edilen bloklara yazılır, bundan sonra işletim sisteminin sonraki önyüklemesi sırasında sistem ortamındaki bir dosyaya atılır. Eh, neredeyse bir kez başarısız olduğunda bir durum gözlemledim anakart bellek dökümünün kaydedilmesine izin vermedi: a) döküm kaydetme mantığının çalışması sırasında donma (işlem %100'e ulaşmadı), b) bellek dökümü dosyasına zarar verme (hata ayıklayıcı lanetli yapılar), c) memory.dmp yazma sıfır uzunlukta döküm dosyaları. Bu nedenle, bellek dökümü oluşturulduğunda sistemin zaten tamamen durdurulmuş olmasına ve yalnızca acil durum kodunun çalışmasına rağmen, hatalı donanım, işlemin herhangi bir aşamasında istisnasız olarak herhangi bir mantığa göre kendi ayarlamalarını yapabilir.
Geleneksel olarak, bir Windows bellek dökümünü kaydetmek için ilk aşamada, disk belleği dosyasına (sayfa dosyası) tahsis edilen disk blokları kullanılır. Ardından, mavi ekran ve yeniden başlatmanın ardından veriler ayrı bir dosyaya taşınır ve ardından dosya, dökümün türüne bağlı olarak bir desene göre yeniden adlandırılır. Ancak, başlayarak Windows sürümleri Vista'da bu durum değiştirilebilir, şimdi kullanıcıya takas dosyasının katılımı olmadan özel bir dökümü kaydetme fırsatı verilir ve çökme hakkında geçici bir dosyaya bilgi yerleştirilir. Bu, disk belleği dosyasının boyutu ve konumu için yanlış ayarlarla ilişkili yapılandırma hatalarını ortadan kaldırmak için yapıldı ve bu genellikle bir bellek dökümü kaydetme sürecinde sorunlara yol açtı.
Windows işletim sisteminin ne tür dökümler oluşturmamıza izin verdiğini görelim:

  • İşlem bellek dökümü (uygulama);
  • Çekirdek bellek dökümü;
  • Tam bellek dökümü (sistemin fiziksel belleğinin kullanılabilir bölümünün dökümü).

Tüm kilitlenme dökümleri iki ana kategoriye ayrılabilir:

  • Atılan istisna hakkında bilgi içeren kilitlenme dökümleri. Genellikle oluşturulur otomatik mod, uygulamada / çekirdekte işlenmeyen bir istisna oluştuğunda ve buna göre sistem (yerleşik) hata ayıklayıcı çağrılabilir. Bu durumda, istisna hakkında bilgi döküme yazılır, bu da sonraki analiz sırasında istisnanın türünü ve meydana geldiği yeri belirlemeyi kolaylaştırır.
  • İstisna bilgisi olmayan kilitlenme dökümleri. Daha sonra analiz için sürecin yalnızca bir anlık görüntüsünü oluşturmak gerektiğinde, genellikle kullanıcı tarafından manuel olarak oluşturulur. Bu analiz, istisna oluşmadığından istisna türünün belirlenmesi anlamına gelmez, ancak tamamen farklı türde bir analiz, örneğin süreç veri yapılarının incelenmesi vb.

Çekirdek dökümü yapılandırması

Yönetici olarak oturum açmalısınız hesap Bu bölümdeki adımları gerçekleştirmek için

Doğrudan Windows kilitlenme dökümü ayarlarını yapılandırmaya geçelim. İlk olarak, aşağıdaki yollardan biriyle sistem özellikleri penceresine gitmemiz gerekiyor:

  1. Tıklamak sağ tık fareyi "Bilgisayarım" - "Özellikler" - "Gelişmiş sistem ayarları" - "Gelişmiş" simgesinin üzerine getirin.
  2. Düğme "Başlat" - "Kontrol Paneli" - "Sistem" - "Gelişmiş sistem ayarları" - "Gelişmiş".
  3. Klavye kısayolu "Windows" + "Duraklat" - "Gelişmiş sistem ayarları" - "Gelişmiş".

  4. kontrol sistemi.cpl,3
  5. Komut satırında çalıştırın (cmd):
    SistemÖzellikleriGelişmiş

Açıklanan eylemlerin sonucu, "Sistem Özellikleri" penceresini açmak ve "Gelişmiş" sekmesini seçmektir:

Bundan sonra, "İndirme ve Kurtarma" bölümünde, "Seçenekler" i seçiyoruz ve böylece "İndirme ve Kurtarma" adlı yeni bir pencere açıyoruz:

Tüm kilitlenme dökümü ayarları, Sistem Arızası adı verilen bir ayar bloğunda gruplandırılmıştır. Bu blokta aşağıdaki parametreleri ayarlayabiliriz:

  1. Olayları sistem günlüğüne yazın.
  2. Otomatik yeniden başlatma gerçekleştirin.
  3. Hata ayıklama bilgilerini kaydetme.
  4. Döküm dosyası.
  5. Mevcut bir döküm dosyasını değiştirin.

Gördüğünüz gibi, listedeki parametrelerin çoğu oldukça önemsiz ve anlaşılması kolaydır. Ancak, "Dump file" parametresi üzerinde daha ayrıntılı durmak istiyorum. Parametre bir açılır liste olarak sunulur ve dört olası değeri vardır:

Küçük bellek dökümü

Küçük bir bellek dökümü (mini döküm), en az miktarda kilitlenme bilgisi içeren bir dosyadır. Tüm olası bellek dökümlerinin en küçüğü. Belirgin dezavantajlara rağmen, daha fazla araştırma için üçüncü taraf bir sürücü satıcısına iletilmek üzere çarpışma bilgisi olarak kullanılanlar genellikle mini dökümlerdir.
Birleştirmek:

  • Hata mesajı.
  • Hata değeri.
  • Hata seçenekleri.
  • Başarısız olan işlemci bağlamı (PRCB).
  • Tüm iş parçacıklarıyla birlikte çökmeye neden olan işlem için işlem bilgisi ve çekirdek bağlamı (EPROCESS).
  • Kilitlenmeye neden olan iş parçacığı için işlem bilgileri ve çekirdek bağlamı (ETHREAD).
  • Kilitlenmeye neden olan iş parçacığı için çekirdek modu yığını.
  • Yüklenen sürücülerin listesi.

Konaklama: %SystemRoot%\Minidump\MMDDYY-XXXXX-NN.dmp. MMDDYY - sırasıyla ay, gün ve yıl, NN - seri numarasıçöplük.
Birim: Boyut, işletim sisteminin bitliğine bağlıdır: disk belleği dosyasında (veya DedicatedDumpFile'da belirtilen dosyada) 32 bit işletim sistemi için yalnızca 128 kilobayt ve 64 bit işletim sistemi için 256 kilobayt gerekir. Bu kadar küçük bir boyut belirleyemeyeceğimiz için 1 megabayta yuvarlayacağız.

Çekirdek bellek dökümü

Bu tip döküm, çökme anında tüm çekirdek belleğinin bir kopyasını içerir.
Birleştirmek:

  • Çalışan işlemlerin listesi.
  • Geçerli iş parçacığının durumu.
  • Kilitlenme anında fiziksel bellekte bulunan çekirdek modu bellek sayfaları: çekirdek modu sürücü belleği ve çekirdek modu program belleği.
  • Donanım Duyarlı Katman (HAL) belleği.
  • Yüklenen sürücülerin listesi.

Çekirdek bellek dökümü, ayrılmamış bellek sayfaları ve kullanıcı modu sayfaları eksik. Katılıyorum, bir sistem çökmesi (BugCheck) sırasında kullanıcı modu işleminin sayfalarının bizi ilgilendirmesi pek olası değildir, çünkü genellikle bir sistem çökmesi çekirdek modu kodu tarafından başlatılır.

Boyut: Çekirdek adres alanının boyutuna, işletim sisteminin tahsisine ve çekirdek modu sürücülerinin sayısına göre değişir. Tipik olarak, takas dosyasındaki (veya DedicatedDumpFile tarafından belirtilen dosyadaki) fiziksel bellek miktarının yaklaşık üçte biri gereklidir. Değişebilir.

Tam bellek dökümü

Tam bir bellek dökümü, çökme anında tüm fiziksel belleğin (RAM) bir kopyasını içerir. Buna göre, sistem belleğinin tüm içeriği de dosyaya girer. Bu hem bir avantaj hem de büyük bir dezavantajdır, çünkü büyük miktarda RAM'e sahip bazı sunucularda boyutu önemli olabilir.
Birleştirmek:

  • "Görünür" fiziksel belleğin tüm sayfaları. Bu, donanım tarafından kullanılan alanlar hariç, neredeyse sistemin tüm belleğidir: BIOS, PCI alanı, vb.
  • Kilitlenme sırasında sistemde çalışan verileri işleyin.
  • Sanal adres alanıyla eşlenmemiş ancak hatanın nedenini araştırmaya yardımcı olabilecek fiziksel bellek sayfaları.

Tam bellek dökümü, varsayılan olarak BIOS tarafından kullanılan fiziksel bellek alanlarını içermez.
Konum: %SystemRoot%\MEMORY.DMP . Önceki dökümün üzerine yazılır.
Boyut: Disk belleği dosyası (veya DedicatedDumpFile'da belirtilen dosya), fiziksel bellek + 257 MB boyutuna eşit bir miktar gerektirir (bu 257 MB, bir tür başlık + sürücü verisine bölünür). Aslında, bazı işletim sistemlerinde, disk belleği dosyasının alt eşiği, tam olarak fiziksel bellek boyutunun değerine ayarlanabilir.

Otomatik bellek dökümü

Windows 8/'den başlayarak Windows Server 2012, varsayılan tip olarak ayarlanan "Otomatik Bellek Dökümü" adlı sisteme yeni bir döküm tipi eklendi. Bu durumda, belirli bir arıza durumunda hangi bellek dökümünün yazılacağına sistem kendisi karar verir. Ayrıca, seçim mantığı, işletim sisteminin "düşme" sıklığı da dahil olmak üzere birçok kritere bağlıdır.

Windows bellek dökümü yapılandırmasını değiştirdikten sonra bilgisayarınızı yeniden başlatmanız gerekebilir.

Kayıt defteri ayarları

Kilitlenme dökümü ayarlarını tanımlayan kayıt defteri anahtarı:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

Seçenekler:

Parametre Bir çeşit Tanım
otomatik yeniden başlatma REG_DWORD Bir BSOD oluştuğunda otomatik yeniden başlatmayı etkinleştirin/devre dışı bırakın.
CrashDumpEtkin REG_DWORD Oluşturulan dökümün türü.
  • 0 - bir bellek dökümü oluşturmayın;
  • 1 - tam bellek dökümü;
  • 2 - çekirdek bellek dökümü;
  • 3 - küçük bellek dökümü;
DumpFile REG_EXPAND_SZ Çekirdek dökümü ve tam dökümün yolu ve adı.
Döküm Filtreleri REG_MULTI_SZ Bellek dökümü sürücü yığınındaki sürücü filtresi. Kilitlenme dökümleri oluşturma aşamasında yeni işlevler eklemenize olanak tanır. Örneğin, bir dökümün içeriğini şifrelemek. Değerin değiştirilmesi önerilmez.
günlük olayı REG_DWORD Sistem günlüğüne bir olay yazın.
MinidumpDir REG_EZPAND_SZ Küçük bellek dökümünün yolu ve adı.
MinidumpsCount REG_DWORD Maksimum küçük bellek dökümü sayısı. aşıldığında, eski sürümlerin üzerine yazılmaya başlar.
üzerine yaz REG_DWORD Mevcut bir döküm dosyasını değiştirin. Yalnızca çekirdek bellek dökümü ve tam bellek dökümü için.
IgnorePagefileSize REG_DWORD Bir bellek dökümünü geçici olarak (ara olarak) depolamak için bir yer olarak standart disk belleği dosyasını yok sayar. Bellek dökümünün ayrı bir dosyaya yazılması gerektiğini gösterir. DedicatedDumpFile seçeneğiyle birlikte kullanılır.
DedicatedDumpFile REG_EZPAND_SZ Geçici olanın yolu ve adı alternatif dosya bir bellek dökümü yazmak için. İkinci geçişte, veriler yine de DumpFile/MinidumpDir'e taşınacaktır.

Manuel olarak bir bellek dökümü oluşturma

Yukarıda ayarlarını açıkladık otomatik oluşturma kritik bir hata, yani çekirdek kodunda işlenmeyen bir istisna olması durumunda sistem çökmesi dökümleri. Ancak gerçek hayatta, işletim sisteminin çökmesine ek olarak, belirli bir zamanda sistem belleği dökümü almanız gereken durumlar vardır. Bu durumda nasıl olunur? WinDbg/LiveKD hata ayıklayıcılarında .dump komutunu kullanmak gibi, tüm fiziksel belleğin anında bir kopyasını almak için yöntemler vardır. LiveKD, yerel modda çalışan bir sistemde Kd çekirdek hata ayıklayıcısını çalıştırmanıza izin veren bir programdır. WinDbg hata ayıklayıcı da benzer bir özelliğe sahiptir. Bununla birlikte, bir dökümü elde etmenin anında yöntemi doğru değildir, çünkü bu durumda döküm yaratılır, çünkü döküm oluşturmak zaman alır ve bir çekirdek modu hata ayıklayıcı kullanılması durumunda , sistem çalışmaya ve hafıza sayfalarında değişiklik yapmaya devam eder.

Kritik bir arıza anında, Windows işletim sistemi çalışmayı durdurur ve mavi bir ölüm ekranı (BSOD) görüntüler. İçerik rasgele erişim belleği ve oluşan hata ile ilgili tüm bilgiler disk belleği dosyasına yazılır. Sonrasında Windows önyüklemesi kaydedilen verilere dayalı olarak hata ayıklama bilgileriyle bir kilitlenme dökümü oluşturulur. Sistem olay günlüğünde önemli bir hata girişi oluşturulur.

Dikkat! Disk alt sistemi başarısız olursa veya bir kilitlenme dökümü oluşturulmaz. kritik hata Windows'u yüklemenin ilk aşamasında ortaya çıktı.

Windows Kilitlenme Dökümleri Türleri

Mevcut işletim örneğinde Windows sistemleri 10 (Windows Server 2016), sistemin oluşturabileceği ana bellek döküm türlerine bakalım:

  • Mini bellek dökümü (Küçük bellek dökümü)(256 KB). Bu dosya türü minimum miktarda bilgi içerir. Yalnızca BSOD hata mesajını, sürücülerle ilgili bilgileri, çökme anında etkin olan işlemleri ve çökmeye neden olan işlem veya çekirdek iş parçacığını içerir.
  • Çekirdek bellek dökümü. Tipik olarak küçük, fiziksel bellek miktarının üçte biri. Çekirdek bellek dökümü, mini dökümden daha ayrıntılıdır. Çekirdek modundaki sürücüler ve programlar hakkında bilgi içerir, ayrılan belleği içerir Windows çekirdeği ve donanım soyutlama katmanı (HAL) ile çekirdek modunda sürücülere ve diğer programlara ayrılan bellek.
  • Tam bellek dökümü. Boyut olarak en büyüğüdür ve sisteminizin RAM'ine ve bu dosyayı oluşturmak için Windows tarafından gereken 1MB'ye eşit bellek gerektirir.
  • Otomatik bellek dökümü. Bilgi açısından bir çekirdek bellek dökümüne karşılık gelir. Yalnızca döküm dosyasını oluşturmak için kullandığı alan bakımından farklılık gösterir. Bu dosya türü Windows 7'de yoktu. Windows 8'de eklendi.
  • Aktif bellek dökümü. Bu tür, bir sistem arızasının nedenini belirleyemeyen öğeleri filtreler. Bu, Windows 10'a eklenmiştir ve özellikle kullanıyorsanız kullanışlıdır. sanal makine veya sisteminiz bir Hyper-V ana bilgisayarıysa.

Windows'ta bellek dökümü oluşturma nasıl etkinleştirilir?

Win + Pause'u kullanarak sistem ayarları penceresini açın, " Ek sistem ayarları" (Gelişmiş sistem Ayarları). sekmesinde " bunlara ek olarak" (Gelişmiş), bölüm "" (Başlangıç ​​ve Kurtarma), düğmesine tıklayın " Seçenekler» (Ayarlar). Açılan pencerede sistem arızası durumunda yapılacak işlemleri yapılandırın. onay kutusunu işaretleyin " Olayları sistem günlüğüne yaz» (Sistem günlüğüne bir olay yazın), sistem çöktüğünde oluşturulacak döküm türünü seçin. Onay kutusunda ise " Mevcut döküm dosyasını değiştirin» (Var olan herhangi bir dosyanın üzerine yaz) kutuyu işaretleyin, her kilitlenmede dosyanın üzerine yazılacaktır. Bu kutunun işaretini kaldırmak daha iyidir, o zaman analiz için daha fazla bilgiye sahip olursunuz. Sistemin otomatik olarak yeniden başlatılmasını da devre dışı bırakın (Otomatik olarak yeniden başlat).

Çoğu durumda, BSOD'nin nedenini analiz etmek için küçük bir bellek dökümü yeterli olacaktır.

Şimdi, bir BSOD meydana gelirse, döküm dosyasını analiz edebilir ve hataların nedenini bulabilirsiniz. Bir mini döküm, varsayılan olarak %systemroot%\minidump klasöründe depolanır. Döküm dosyasını analiz etmek için programı kullanmanızı tavsiye ederim. WinDBG(Microsoft Çekirdek Hata Ayıklayıcı).

WinDBG'yi Windows'a Yükleme

Yarar WinDBG dahil " Windows 10 SDK'sı» (Windows 10 SDK). .

dosya denir winsdksetup.exe, boyut 1.3 MB.

Kurulumu çalıştırın ve paketi bu bilgisayara mı kuracağınızı yoksa diğer bilgisayarlara kurulum için mi indireceğinizi seçin. Paketi yerel bilgisayara yükleyin.

Paketin tamamını yükleyebilirsiniz, ancak yalnızca hata ayıklama aracını yüklemek için hata ayıklama Araçlar pencereler.

Kurulduktan sonra, WinDBG kısayolları başlat menüsünde bulunabilir.

.dmp dosyalarının WinDBG ile ilişkisini ayarlama

Döküm dosyalarını basit bir tıklamayla açmak için .dmp uzantısını WinDBG yardımcı programıyla eşleştirin.

  1. açık Komut satırı yönetici olarak ve 64 bit sistem için komutları çalıştırın: cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    windbg.exe –IA
    32 bit sistem için:
    C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
    windbg.exe –IA
  2. Sonuç olarak, dosya türleri: .DMP, .HDMP, .MDMP, .KDMP, .WEW WinDBG ile eşleştirilecektir.

WinDBG'de bir hata ayıklama sembolü sunucusu kurma

Hata ayıklama sembolleri (hata ayıklama sembolleri veya sembol dosyaları), yürütülebilir bir dosya ile birlikte bir programın derlenmesi sürecinde oluşturulan veri bloklarıdır. Bu tür veri blokları, işlevler, kitaplıklar vb. olarak adlandırılan değişken adları hakkında bilgi içerir. Bu veriler, programı çalıştırırken gerekli değildir, ancak hata ayıklarken kullanışlıdır. Microsoft bileşenleri, Microsoft Symbol Server aracılığıyla dağıtılan sembollerle derlenir.

Microsoft Symbol Server'ı kullanmak için WinDBG'yi ayarlayın:

  • WinDBG'yi açın;
  • Menüye git dosya –> Sembol Dosya Yolu;
  • Microsoft web sitesinden hata ayıklama simgelerini indirmek için URL'yi ve önbelleği kaydetme klasörünü içeren bir dize yazın: SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols Örnekte, önbellek indirilir E:\Sym_WinDBG klasörüne herhangi birini belirtebilirsiniz.
  • Menüdeki değişiklikleri kaydetmeyi unutmayın dosya–>Çalışma Alanından Kaydedin;

WinDBG, yerel klasördeki sembolleri arayacak ve içinde gerekli sembolleri bulamazsa, sembolleri belirtilen siteden otomatik olarak indirecektir. Kendi semboller klasörünüzü eklemek istiyorsanız, bunu şu şekilde yapabilirsiniz:

SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols;c:\Symbols

İnternet bağlantısı yoksa, önce Windows Sembol Paketleri kaynağından sembol paketini indirin.

WinDBG'de kilitlenme dökümü analizi

WinDBG hata ayıklayıcısı, döküm dosyasını açar ve yerel bir klasörden veya İnternet'ten hata ayıklamak için gerekli sembolleri indirir. Bu işlem sırasında WinDBG kullanamazsınız. Pencerenin altında (hata ayıklayıcı komut satırında) yazı görünür Hata ayıklayıcı bağlı değil.

Komutlar, pencerenin alt kısmında bulunan komut satırına girilir.

Dikkat edilmesi gereken en önemli şey, her zaman belirtilen hata kodudur. onaltılık değer ve benziyor 0xXXXXXXXXX(seçeneklerden birinde belirtilir - DUR:, 07/02/2019 0008F, 0x8F). Örneğimizde hata kodu 0x139'dur.

Hata ayıklayıcı sizden !analyze -v komutunu çalıştırmanızı ister, fareyle bağlantının üzerine gelin ve tıklayın. Bu komut ne için?

  • Bellek dökümünün bir ön analizini gerçekleştirir ve detaylı bilgi Analizi başlatmak için.
  • Bu komut, STOP kodunu ve hatanın sembolik adını gösterecektir.
  • Kilitlenmeye neden olan komutların çağrı yığınını gösterir.
  • Ayrıca IP adresi, işlem ve kayıt hataları burada görüntülenir.
  • Ekip, sorunu çözmek için hazır önerilerde bulunabilir.

!analyze -v komutunu çalıştırdıktan sonra analiz yaparken dikkat etmeniz gereken ana noktalar (listeleme tamamlanmamıştır).

1: kd> !analiz -v


* *
*Bugcheck Analizi*
* *
*****************************************************************************
STOP hatasının sembolik adı (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Hatanın açıklaması (Bir çekirdek bileşeni kritik bir veri yapısını bozdu. Bu bozulma, bir saldırganın bu makinenin kontrolünü ele geçirmesine olanak sağlayabilir):

Bir çekirdek bileşeni, kritik bir veri yapısını bozdu. Bozulma, potansiyel olarak kötü niyetli bir kullanıcının bu makinenin kontrolünü ele geçirmesine izin verebilir.
Hata argümanları:

Argümanlar:
Arg1: 000000000000003, A LIST_ENTRY bozulmuş (yani çift kaldırma).
Arg2: ffffd0003a20d5d0, Hata denetimine neden olan istisna için tuzak çerçevesinin adresi
Arg3: ffffd0003a20d528, Hata denetimine neden olan özel durum için özel durum kaydının adresi
Arg4: 0000000000000000, Ayrılmış
Hata Ayıklama Ayrıntıları:
------------------

Sayaç, sistemin benzer bir hatayla kaç kez çöktüğünü gösterir:

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

Kısaltılmış biçimde STOP hata kodu:

BUGCHECK_STR: 0x139

Kilitlenen işlem (mutlaka hatanın nedeni değil, yalnızca bu işlem kilitlenme anında bellekte çalışıyordu):

PROSES_NAME: sqlservr.exe

Hata kodu şifre çözme: Sistem, bu uygulamada bir saldırganın bu uygulamanın kontrolünü ele geçirmesine izin verebilecek bir yığın arabellek taşması algıladı.

HATA_KODU: (NTSTATUS) 0xc0000409 - Sistem, bu uygulamada yığın tabanlı bir arabellek taşması algıladı. Bu taşma, potansiyel olarak kötü niyetli bir kullanıcının bu uygulamanın kontrolünü ele geçirmesine izin verebilir.
İSTİSNA_KODU: (NTSTATUS) 0xc0000409 - Sistem, bu uygulamada yığın tabanlı bir arabellek taşması algıladı. Bu taşma, potansiyel olarak kötü niyetli bir kullanıcının bu uygulamanın kontrolünü ele geçirmesine izin verebilir.

Yığındaki son çağrı:

LAST_CONTROL_TRANSFER: fffff8040117d6a9'dan fffff8040116b0a0'a

Arıza anında çağrı yığını:

STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9: 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20d528: nt!KeBugCheckEx
ffffd000`3a20d2b0 fffff804`0117da50: ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2: nt!KiBugCheckDispatch+0x69
ffffd000`3a20d3f0 fffff804`0117c150: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: nt!KiFastFailDispatch+0xd0
ffffd000`3a20d5d0 fffff804`01199482: ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9: nt!KiRaiseSecurityCheckFailure+0x3d0
ffffd000`3a20d760 fffff804`014a455d: 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951: nt! ?? ::FNODOBFM::`string"+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac: 00000000`00000004 00000000`00000000
ffffd000`3a20d990 fffff804`0117d313: ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380: nt!NtWriteFile+0x694
ffffd000`3a20da90 00007ffb`475307da: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: nt!KiSystemServiceCopyEnd+0x13
000000ee'f25ed2b8 00000000'00000000: 00000000'00000000 00000000'00000000 00000000'00000000

Hatanın oluştuğu kod bölümü:

FOLLOWUP_IP:
nt!KiFastFailDispatch+d0
fffff804'0117da50 c644242000 mov bayt ptr ,0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: Makine Sahibi

Çekirdek nesne tablosundaki modülün adı. Analiz cihazı sorunlu bir sürücü tespit edebildiyse, MODULE_NAME ve IMAGE_NAME alanlarında ad görüntülenir:

MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe

1: kd > lmvm nt
Tam modül listesine göz atın
Yüklenen sembol resim dosyası: ntkrnlmp.exe
Eşlenen bellek görüntü dosyası: C:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.exe
Görüntü yolu: ntkrnlmp.exe
Resim adı: ntkrnlmp.exe
DahiliAdı: ntkrnlmp.exe
Orijinal Dosya Adı: ntkrnlmp.exe
Ürün Sürümü: 6.3.9600.18946
Dosya Sürümü: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

Yukarıdaki örnekte, analiz ntkrnlmp.exe çekirdek dosyasına işaret etti. Bellek dökümü analizi bir sistem sürücüsüne (örneğin, win32k.sys) veya bir çekirdek dosyasına (örneğin, örneğimizde ntkrnlmp.exe) işaret ettiğinde, büyük olasılıkla verilen dosya sorunun nedeni değildir. Çoğu zaman sorunun aygıt sürücüsünde olduğu ortaya çıkıyor, BIOS ayarları veya ekipman arızası.

BSOD'nin üçüncü taraf bir sürücüden kaynaklandığını görürseniz, adı MODULE_NAME ve IMAGE_NAME değerlerinde listelenecektir.

Örneğin:

Görüntü yolu: \SystemRoot\system32\drivers\cmudaxp.sys
Resim adı: cmudaxp.sys

Sürücü dosyasının özelliklerini açın ve sürümünü kontrol edin. Çoğu durumda, sürücülerle ilgili sorun, sürücülerin güncellenmesiyle çözülür.