• BSOD'a neden olan sürücüyü belirlemek için bellek dökümü nasıl kullanılır? Windows kilitlenme bellek dökümü cpp dosyasına bellek dökümü Windows 10

    Bu kısa not, acil bir duruma müdahale etmek için sistemi nasıl yapılandırabileceğinizi göstermeyi amaçlamaktadır. Windows bellek dökümü yani, mavi bir ölüm ekranının (BSOD) ortaya çıkmasıyla karakterize edilen, kritik bir arıza meydana gelirse oluşturulabilecek bir döküm. Genel olarak çöplük nedir, neden buna ihtiyacımız var ve nedir, hangi sorunları çözmeyi amaçlıyor ve hangi bilgileri içeriyor?

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

    Bu içeriğe neden ihtiyacımız olabilir? Windows bellek dökümü? Belki de bellek dökümünün en yaygın kullanımı, işletim sisteminin tamamen durmasına neden olan sistem arızasının () nedenlerini incelemektir. Buna ek olarak hafıza durumu başka amaçlar için de kullanılabilir. Bellek dökümünün herhangi bir arıza hakkında bilgi edinmenin tam anlamıyla tek yolu olması da önemlidir! Ve bir sistem bellek dökümü almak (elde etmek), aslında sistemin fiziksel belleğinin içeriğinin anında parmak izini (kopyasını) almanın tek doğru yöntemidir.

    Dökümün içeriği arıza anındaki hafıza durumunu ne kadar doğru yansıtırsa, acil durumu o kadar ayrıntılı analiz edebileceğiz. Bu nedenle, sistemin fiziksel belleğinin güncel bir kopyasını, arızadan hemen önce kesin olarak tanımlanmış bir zamanda elde etmek son derece önemlidir. Ve bunu yapmanın tek yolu tam bir kilitlenme dökümü oluşturmaktır. Bunun nedeni oldukça önemsizdir - bir arızanın sonucu olarak veya yapay olarak simüle edilmiş bir durumun sonucu olarak sistem belleğinde bir çökme dökümü meydana geldiğinde, sistem şu anda acil durum işlevlerinin (KeBugCheckEx) kontrolünü alma aşamasındadır. kesinlikle değişmeyen (statik) durum, dolayısıyla, arızanın meydana geldiği an ile verinin ortama yazıldığı an arasında, fiziksel belleğin içeriğini hiçbir şey değiştirmez ve diske orijinal durumunda yazılır. Bu teoride böyledir, 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ü kaydederken istasyonun donabileceği durumlar vardır.

    Çoğu durumda, kilitlenme hafıza dökümü oluşturma sürecinin başladığı andan hafıza içeriklerinin diske yazılmasının sonuna kadar, hafızadaki bilgiler değişmeden kalır.

    Teorik olarak, bellek "parmak izinin" statikliği (değişmezliği), arıza hakkında bilgi görüntüleyen ve bellek dökümü oluşturma sürecini başlatan KeBugCheckEx işlevi çağrıldığında sistemin zaten tamamen durdurulmuş olması ve fiziksel belleğin içeriği, disk belleği dosyasının diskte kapladığı bloklara yazılır, ardından işletim sisteminin sonraki yüklenmesi sırasında sistem ortamındaki bir dosyaya sıfırlanır. Neredeyse bir kez, hatalı bir anakartın bellek dökümü kaydetmeme izin vermediği bir durum gözlemledim: a) döküm kaydetme mantığı çalışırken donma (işlem %100'e ulaşmadı), b) bellek dökümü dosyasına zarar verme ( hata ayıklayıcı yapılar hakkında şikayette bulundu), c) sıfır uzunlukta bellek.dmp döküm dosyalarını yazmak. Bu nedenle, bellek dökümü oluşturulduğunda sistem zaten tamamen durmuş olmasına ve yalnızca acil durum kodunun çalışmasına rağmen, hatalı donanım, operasyonun herhangi bir aşamasında istisnasız herhangi bir mantıkta ayarlamalar yapabilir.
    Geleneksel olarak, ilk aşamada, disk belleği dosyasına tahsis edilen disk blokları bir Windows bellek dökümünü kaydetmek için 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 türüne bağlı olarak bir kalıp kullanılarak yeniden adlandırılır. Ancak, Windows Vista sürümünden başlayarak, bu durum değiştirilebilir; artık kullanıcıya, seçilen dökümü bir disk belleği dosyasının katılımı olmadan kaydetme ve başarısızlıkla ilgili bilgileri geçici bir dosyaya yerleştirme fırsatı veriliyor. Bu, disk belleği dosyasının boyutu ve konumuyla ilgili yanlış ayarlarla ilişkili yapılandırma hatalarını ortadan kaldırmak için yapıldı; bu, genellikle bellek dökümünü kaydetme işlemi sırasında sorunlara yol açtı.
    Windows işletim sisteminin ne tür dökümler oluşturmamıza izin verdiğini görelim:

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

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

    • Meydana gelen istisna hakkında bilgi içeren kilitlenme dökümleri. Uygulamada/çekirdekte işlenmeyen bir istisna oluştuğunda genellikle otomatik olarak oluşturulurlar ve buna göre sistem (yerleşik) hata ayıklayıcı çağrılabilir. Bu durumda, istisna hakkındaki bilgiler bir döküme kaydedilir; bu, sonraki analiz sırasında istisnanın türünün ve nerede oluştuğunun belirlenmesini kolaylaştırır.
    • İstisnai durum bilgileri olmadan kilitlenme dökümleri. Daha sonraki analiz için bir sürecin anlık görüntüsünün oluşturulması gerektiğinde genellikle kullanıcı tarafından manuel olarak oluşturulur. Bu analiz, hiçbir istisna meydana gelmediği için istisna türünün belirlenmesini değil, tamamen farklı türden bir analizi, örneğin bir sürecin veri yapılarının incelenmesini vb. ima eder.

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

    Bu bölümde açıklanan eylemleri gerçekleştirmek için bir yönetici hesabıyla oturum açmanız gerekir.

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

    1. "Bilgisayarım" simgesine - "Özellikler" - "Gelişmiş sistem ayarları" - "Gelişmiş" seçeneğine sağ tıklayın.
    2. "Başlat" düğmesi - "Denetim Masası" - "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, "Önyükleme ve Kurtarma" bölümünde tıklayıp "Seçenekler"i seçip "İndirme ve Kurtarma" adlı yeni bir pencere açıyoruz:

    Tüm kilitlenme dökümü parametreleri "Sistem Arızası" adı verilen bir parametre bloğunda gruplandırılı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 bilgilerinin kaydedilmesi.
    4. Dosyayı boşalt.
    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" parametresini biraz daha detaylandırmak istiyorum. Parametre bir açılır liste olarak sunulur ve dört olası değere sahiptir:

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

    Küçük bellek dökümü (mini döküm), hatayla ilgili en az miktarda bilgiyi içeren bir dosyadır. Olası tüm bellek dökümlerinin en küçüğü. Bariz dezavantajlara rağmen, mini dökümler genellikle daha sonraki çalışmalar için üçüncü taraf sürücü satıcılarına aktarılacak bir başarısızlıkla ilgili bilgi olarak kullanılır.
    Birleştirmek:

    • Hata mesajı.
    • Hata değeri.
    • Hata parametreleri.
    • Arızanın meydana geldiği işlemci bağlamı (PRCB).
    • Çökme süreci ve tüm iş parçacıkları için süreç bilgileri ve çekirdek bağlamı (EPROCESS).
    • Çökmeye neden olan iş parçacığına ilişkin işlem bilgileri ve çekirdek bağlamı (ETHREAD).
    • Çökmeye neden olan iş parçacığının ç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ı gösterirken, NN dökümün seri numarasıdır.
    Birim: Boyut, işletim sisteminin bitliğine bağlıdır: disk belleği dosyasında (veya DedicatedDumpFile'da belirtilen dosyada) 32 bit için yalnızca 128 kilobayt ve 64 bit işletim sistemi için 256 kilobayt gereklidir. Bu kadar küçük bir boyut belirleyemediğimiz için bunu 1 megabayta yuvarlıyoruz.

    Çekirdek bellek dökümü

    Bu tür döküm, çökme anındaki 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ıma bağımlı düzey (HAL) belleği.
    • Yüklenen sürücülerin listesi.

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

    Boyut: İşletim sistemi tarafından ayrılan çekirdek adres alanının boyutuna ve çekirdek modu sürücülerinin sayısına bağlı olarak değişir. Tipik olarak, takas dosyasında (veya DedicatedDumpFile'da belirtilen dosyada) fiziksel belleğin yaklaşık üçte biri gereklidir. Değişebilir.

    Bellek dökümünü tamamla

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

    • "Görünür" fiziksel belleğin tüm sayfaları. Bu, donanım tarafından kullanılan alanlar dışında neredeyse tüm sistem belleğidir: BIOS, PCI alanı vb.
    • Arıza anında sistemde çalışmakta olan işlemlere ait veriler.
    • Sanal adres alanıyla eşlenmeyen ancak hatanın nedeninin araştırılmasına yardımcı olabilecek fiziksel bellek sayfaları.

    Varsayılan olarak, tam bellek dökümü, BIOS tarafından kullanılan fiziksel bellek alanlarını içermez.
    Konum: %SystemRoot%\MEMORY.DMP . Önceki dökümün üzerine yazılır.
    Birim: Disk belleği dosyası (veya DedicatedDumpFile'da belirtilen dosya), fiziksel bellek boyutuna + 257 megabayta eşit bir birim gerektirir (bu 257 MB, belirli bir başlık + sürücü verisine bölünmüştü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/Windows Server 2012'den başlayarak, varsayılan tür olarak ayarlanan Otomatik Bellek Dökümü adı verilen yeni bir döküm türü sisteme eklenmiştir. Bu durumda, belirli bir arıza durumunda hangi bellek dökümünün kaydedileceğine sistemin kendisi karar verir. Üstelik seçimin mantığı, işletim sisteminin "çökme" 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ü parametrelerini tanımlayan kayıt defteri bölümü:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

    Seçenekler:

    Parametre Tip Tanım
    Otomatik yeniden başlatma REG_DWORD 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 - 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ü;
    Döküm Dosyası REG_EXPAND_SZ Çekirdek bellek dökümü ve tam bellek dökümünü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 eklemenizi sağlar. Örneğin, dökümün içeriğini şifrelemek. Değerin değiştirilmesi önerilmez.
    GünlükEtkinliği REG_DWORD Sistem günlüğüne bir olayın kaydedilmesi.
    MinidumpDir REG_EZPAND_SZ Küçük bellek dökümünün yolu ve adı.
    MinidumpsCount REG_DWORD Maksimum sayıda küçük bellek dökümü. 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.
    Sayfa Dosyası Boyutunu Yoksay REG_DWORD Geçici (ara) bellek dökümü depolama yeri olarak standart sayfa dosyasını yok sayar. Bellek dökümünün ayrı bir dosyaya yazılması gerektiğini belirtir. DedicatedDumpFile seçeneğiyle birlikte kullanılır.
    Adanmış Döküm Dosyası REG_EZPAND_SZ Bellek dökümünü kaydetmek için geçici alternatif dosyanın yolu ve adı. İkinci geçişte veriler yine de DumpFile/MinidumpDir'e taşınacaktır.

    El ile bellek dökümü oluşturma

    Yukarıda, kritik bir hata, yani çekirdek kodunda işlenmeyen bir istisna durumunda otomatik olarak sistem kilitlenme dökümleri oluşturmaya yönelik ayarları açıkladık. Ancak gerçek hayatta, işletim sisteminin çökmesine ek olarak, belirli bir zamanda sistem bellek dökümü almanın gerekli olduğu durumlar da vardır. Bu durumda nasıl olunur? Tüm fiziksel belleğin anlık görüntüsünü elde etmeye yönelik yöntemler vardır; örneğin WinDbg/LiveKD hata ayıklayıcılarındaki .dump komutunu kullanmak. LiveKD, çalışan bir sistemde Kd çekirdek hata ayıklayıcısını yerel modda çalıştırmanıza izin veren bir programdır. WinDbg hata ayıklayıcısının da benzer bir özelliği vardır. Ancak, anında döküm yöntemi doğru değildir çünkü bu durumda oluşturulan döküm "tutarsızdır" çünkü dökümü oluşturmak zaman alır ve çekirdek modu hata ayıklayıcısının kullanılması durumunda sistem çalışmaya ve hata ayıklamaya devam eder. hafıza sayfalarında değişiklik yapar.

    Kritik bir arıza meydana geldiğinde, Windows işletim sistemi çöker ve Mavi Ölüm Ekranı (BSOD) görüntüler. RAM içeriği ve oluşan hatayla ilgili tüm bilgiler disk belleği dosyasına yazılır. Windows'u bir sonraki başlatışınızda, kaydedilen verilere dayalı olarak hata ayıklama bilgilerini içeren bir kilitlenme dökümü oluşturulur. Sistem olay günlüğünde kritik bir hata girişi oluşturulur.

    Dikkat! Windows önyüklemesinin ilk aşamasında disk alt sistemi arızalanırsa veya kritik bir hata oluşursa kilitlenme dökümü oluşturulmaz.

    Windows Kilitlenme Dökümü Türleri

    Örnek olarak mevcut işletim sistemi Windows 10'u (Windows Server 2016) kullanarak, sistemin oluşturabileceği ana bellek dökümü türlerine bakalım:

    • Mini 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 hangi işlemin veya çekirdek iş parçacığının neden olduğunu içerir.
    • Çekirdek bellek dökümü. Boyut olarak genellikle küçüktür; fiziksel bellek boyutunun üçte biri kadardır. Çekirdek bellek dökümü, mini dökümden daha ayrıntılıdır. Sürücüler ve çekirdek modu programları hakkında bilgi içerir; Windows çekirdeğine ve donanım soyutlama katmanına (HAL) ayrılan belleği ve sürücülere ve diğer çekirdek modu programlarına ayrılan belleği içerir.
    • Bellek dökümünü tamamla. Boyut olarak en büyüğüdür ve bu dosyayı oluşturmak için sisteminizin RAM artı Windows'un gerektirdiği 1MB'a eşit bellek gerektirir.
    • Otomatik bellek dökümü. Bilgi açısından çekirdek bellek dökümüne karşılık gelir. Tek fark, döküm dosyasını oluşturmak için ne kadar alan kullandığıdır. Bu dosya türü Windows 7'de yoktu. Windows 8'de eklendi.
    • Aktif bellek dökümü. Bu tür, sistem arızasının nedenini belirleyemeyen unsurları ortadan kaldırır. Bu, Windows 10'a eklenmiştir ve özellikle sanal makine kullanıyorsanız veya sisteminiz bir Hyper-V ana bilgisayarıysa kullanışlıdır.

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

    Win+Pause'u kullanarak sistem ayarları penceresini açın, " Gelişmiş sistem Ayarları"(Gelişmiş sistem Ayarları). İçinde " bunlara ek olarak" (Gelişmiş), bölüm "" (Başlatma ve Kurtarma) düğmesine tıklayın " Seçenekler"(Ayarlar). Açılan pencerede sistem arızalandığında gerçekleştirilecek eylemleri yapılandırın. " kontrol edin Olayları sistem günlüğüne kaydedin" (Sistem günlüğüne bir olay yaz), sistem çöktüğünde oluşturulması gereken döküm türünü seçin. Onay kutusundaysa " Mevcut döküm dosyasını değiştir"(Mevcut herhangi bir dosyanın üzerine yaz) kutuyu işaretleyin, her hata olduğunda dosyanın üzerine yazılacaktır. Bu kutunun işaretini kaldırmanız daha iyi olur, böylece analiz için daha fazla bilgiye sahip olursunuz. Ayrıca Otomatik olarak yeniden başlat seçeneğini de devre dışı bırakın.

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

    Artık bir BSOD oluştuğunda döküm dosyasını analiz edebilir ve hatanın nedenini bulabilirsiniz. Mini döküm, varsayılan olarak %systemroot%\minidump klasörüne kaydedilir. Döküm dosyasını analiz etmek için programı kullanmanızı öneririm WinDBG(Microsoft Çekirdek Hata Ayıklayıcısı).

    WinDBG'nin Windows'a Kurulumu

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

    Dosya denir Winsdksetup.exe, boyut 1,3 MB.

    Kurulumu çalıştırın ve tam olarak ne yapmak istediğinizi seçin; paketi bu bilgisayara yükleyin veya diğer bilgisayarlara kurulum için indirin. Paketi yerel bilgisayara yükleyelim.

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

    Kurulumdan sonra WinDBG kısayollarını başlat menüsünde bulabilirsiniz.

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

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

    1. Yönetici olarak bir komut istemi açın 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 Dosyaları (x86)\Windows Kitleri\10\Hata Ayıklayıcılar\x86
      Windbg.exe –IA
    2. Sonuç olarak, dosya türleri: .DMP, .HDMP, .MDMP, .KDMP, .WEW WinDBG ile eşlenecektir.

    WinDBG'de hata ayıklama sembolü sunucusu kurma

    Hata ayıklama sembolleri (hata ayıklama sembolleri veya sembol dosyaları), bir programın yürütülebilir dosyayla birlikte derlenmesi sırasında oluşturulan veri bloklarıdır. Bu tür veri blokları, işlevler, kütüphaneler 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ıklama sırasında faydalıdır. Microsoft bileşenleri, Microsoft Sembol Sunucusu aracılığıyla dağıtılan sembollerle derlenir.

    WinDBG'yi Microsoft Sembol Sunucusunu kullanacak şekilde yapılandırın:

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

    WinDBG, yerel klasördeki sembolleri arayacaktır 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ınız yoksa öncelikle sembol paketini Windows Sembol Paketleri kaynağından indirin.

    WinDBG'deki kilitlenme dökümünün analizi

    WinDBG hata ayıklayıcısı döküm dosyasını açar ve hata ayıklama için gerekli simgeleri yerel bir klasörden veya İnternet'ten indirir. Bu işlem sırasında WinDBG'yi kullanamazsınız. Pencerenin alt kısmında (hata ayıklayıcı komut satırında) şu mesaj 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 onaltılık olarak gösterilen ve şu şekilde olan hata kodudur: 0xXXXXXXXX(seçeneklerden birinde belirtilir - DUR: , 07/02/2019 0008F, 0x8F). Örneğimizde hata kodu 0x139'dur.

    Hata ayıklayıcı!analyze -v komutunu çalıştırmayı önerir; farenizi bağlantının üzerine getirip tıklamanız yeterlidir. Bu komut ne için?

    • Bellek dökümünün ön analizini gerçekleştirir ve analize başlamak için ayrıntılı bilgi sağlar.
    • Bu komut, hatanın STOP kodunu ve sembolik adını gösterecektir.
    • Çökmeye neden olan komut çağrılarının yığınını gösterir.
    • Ayrıca IP adresi, proses ve kayıt hataları da burada görüntülenir.
    • Ekip, sorunu çözmek için hazır öneriler sunabilir.

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

    1: kd> !analiz -v


    * *
    * Hata Kontrolü 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 tanıyabilir):

    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 olanak tanıyabilir.
    Hata argümanları:

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

    Sayaç, sistemin benzer bir hatayla kaç kez kilitlendiğini gösterir:

    CUSTOMER_CRASH_COUNT: 1

    DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

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

    BUGCHECK_STR: 0x139

    Arızanın meydana geldiği süreç (hatanın nedeni olması şart değildir; arıza anında bu süreç bellekte çalışıyordu):

    PROSES_NAME: sqlservr.exe

    Hata Kodu Açıklaması: Sistem, bu uygulamada bir saldırganın bu uygulamanın kontrolünü ele geçirmesine olanak verebilecek bir yığın arabellek taşması algıladı.

    ERROR_CODE: (NTSTATUS) 0xc0000409 - Sistem, bu uygulamada yığın tabanlı arabelleğin taştığını algıladı. Bu taşma potansiyel olarak kötü niyetli bir kullanıcının bu uygulamanın kontrolünü ele geçirmesine olanak tanıyabilir.
    EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - Sistem, bu uygulamada yığın tabanlı arabelleğin taştığını algıladı. Bu taşma potansiyel olarak kötü niyetli bir kullanıcının bu uygulamanın kontrolünü ele geçirmesine olanak tanıyabilir.

    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: fffffe000`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 fffffe000`fcacb000 ffffd000`3a20d951: nt! ?? ::FNODOBFM::`string"+0x17252
    ffffd000`3a20d8c0 fffff804`013a34ac: 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 fffffe001`0a34c600: nt!IopSynchronousServiceTail+0x379
    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+0x1 3
    000000ee`f25ed2b8 00000000`00000000: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: 0x00007ffb`47530 7 gün

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

    FOLLOWUP_IP:
    nt!KiFastFailDispatch+d0
    fffff804`0117da50 c644242000 mov bayt ptr ,0
    HATA_INSTR_KODU: 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üyü tespit edebildiyse ad, MODULE_NAME ve IMAGE_NAME alanlarında görüntülenir:

    MODULE_NAME:nt
    IMAGE_NAME: ntkrnlmp.exe

    1: kd> lmvm nt
    Tüm 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
    Dahili Ad: ntkrnlmp.exe
    OrijinalDosya 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)

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

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

    Ö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.

    Windows 10'da sözde mavi ölüm ekranı karşınıza çıkıyorsa ve sinir komasına girmeye hazırsanız, kendinizi toparlayın ve sorunu çözmeye çalışın. Başlangıç ​​olarak, bu uğursuz mesajın size kritik bir sistem hatasının sinyalini verdiğini söylemekte fayda var. Üstelik Windows mavi ölüm ekranına düştüğünde ve cihaz yeniden başlatıldığında anı yakalamak ve hata kodunu okuyacak zamana sahip olmak her zaman mümkün olmuyor. Mavi ekranın ortaya çıkmasının nedenlerinin yanı sıra, bu soruna çok sayıda çözüm bulunduğunu hemen belirtelim. Bu yazımızda mavi mutluluk ekranının olası nedenlerini ve sorunun olası çözümlerini ele almaya çalışacağız.

    Vakaların büyük çoğunluğunda, mavi ölüm ekranı BAD_POOL_CALLER - stop 0x000000c2 hatasına işaret eder. Açıkça söylemek gerekirse, bu hatayı teşhis etmek zordur, ancak belki de bu hatayı bir sonraki eylemleriniz için algoritmayı açıklamak için bir örnek olarak kullanmaya çalışacağız.

    Sorunu doğru şekilde teşhis etmek için öncelikle minidump adı verilen özel bir sistem dosyasını analiz etmelisiniz. Bu tür dosyaların oluşturulması bir sistem arızasından kaynaklanmaktadır; ayrıca, arızaya tam olarak neyin yol açtığını bize bildirebilirler.

    1. Küçük bir bellek dökümünün bu otomatik kaydını etkinleştirmek için (varsayılan olarak devre dışıdır), bilgisayar özelliklerine gidin ve "Gelişmiş sistem ayarları" bölümüne gidin (bu etkinleştirme yalnızca Windows 10 için değil, tüm sistemler için sağlanır):

    Kural olarak, mavi ölüm ekranı (BSOD) görüntülendiğinde tüm mini döküm dosyaları kaydedilir ve bunları C:\Windows\Minidump klasöründe bulabilirsiniz. Dosya adının, oluşturulma tarihi olan geçerli tarihi içermesi dikkat çekicidir; bu, özellikle böyle bir dosyanın birden fazla olabileceği göz önüne alındığında, hatanın oluştuğu tarihi belirlemeyi çok daha kolaylaştırır.

    Küçük bellek mini dökümünün şifresini çözmenin iki yolu

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

    Dahası, onun yardımıyla BSOD'u (ölümün mavi ekranı), sistem çöktüğünde olduğu gibi donmuş bir çerçevedeymiş gibi görüntülemenin mümkün olması özellikle dikkat çekicidir. Arızanın saatini ve tarihini, sürümle birlikte sürücü veya modül hakkındaki bilgileri ve kısa bir açıklamayı görüntüler. Ayrıca, yardımcı program Rusça dahil birçok dilde mevcuttur. Dolayısıyla, BlueScreenView yardımcı programı, BSOD sırasında bellek dökümlerini hızlı bir şekilde analiz etmeniz gerekiyorsa tam da ihtiyacınız olan şeydir.

    İçin ikinci yöntem Windows için Hata Ayıklama Araçlarını kurmanız ve ayrıca bsdos_utility yardımcı programını indirmeniz gerekir. Daha sonra bsdos_utility.cmd betiğini paketinden çıkardıktan sonra C:\ sürücüsüne taşımalısınız (ayrı bir klasör oluşturabilirsiniz ancak betik başlatma adres satırının örneğimizdekinden farklı olacağını hatırlamakta fayda var). Daha sonra komut satırına şunları yazmalısınız:

    C:\bsdos_utility.cmd

    C:\Windows\Minidump\ listesindeki tüm dökümlerin bir 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 gerekli mini dökümü kendiniz de seçebilirsiniz:

    Benzer şekilde, BSOD'a neden olan birçok Windows 10 hatasını ve mavi ekrana neden olan sorunlu .exe programlarını tespit etmek mümkündür.

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

    Windows 10 bellek dökümü ayarlama

    Peki Windows 10 Redstone işletim sisteminde bellek dökümü nedir? Yukarıda size sistem bellek dökümünün ortaya çıkmasının çok yaygın bir nedenini ve bunların mavi ölüm ekranları olduğunu anlattım. Görünüşlerinin nedenleri çok kapsamlı:

    • Uygulama uyumsuzluğu
    • Sürücü uyumsuzluğu
    • Yeni Windows güncellemeleri
    • Cihazlar uyumlu değil

    Bu sadece küçük, genelleştirilmiş bir liste, mavi ekranlardan kaynaklanan çok sayıda hata kodu olduğundan en yenilerini vereceğim.

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

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

    Öncelikle Windows 10 kilitlenme hafıza 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 içerik menüsünden Sistem'i seçin.

    Açılan Sistem penceresinde sol üst köşede Gelişmiş Sistem Ayarları seçeneğini seçersiniz.

    Windows 10 bellek dökümünün yapılandırıldığı yer burasıdır.Önyükleme ve Kurtarma bölümündeki Ayarlar öğesine tıklayın.

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

    • Sistem günlüğüne bir olay kaydedilmesi > burada mavi ekranla ilgili bilgiler işletim sistemi günlüklerine eklenecektir.
    • Otomatik yeniden başlatma gerçekleştirin > bir hatadan sonra çalışmaya devam etmek için
    • Hata ayıklama bilgilerinin kaydedilmesi > döküm dosyasının türünü seçmenize olanak tanır; bununla ilgili daha fazla bilgiyi aşağıda bulabilirsiniz.
    • Bu dökümler onlarca gigabayt ağırlığında olabileceğinden, kullanışlı bir onay kutusu olan mevcut döküm dosyasını değiştirin; bu, küçük SSD sürücüleri için çok kritiktir.

    Bellek dökümü türleri

    Hata ayıklama bilgilerini kaydetme seçenekleri arasındaki farklara bakalım

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

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

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

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

    EPROSES) hataya neden olan süreç için;

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

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

    Yerel sürücünüzde çok az disk alanınız olduğunda kullanılır. Bu nedenle, mavi ekranı teşhis etmek için yeterli olmayabilecek faydalı bilgileri feda ediyoruz.

    Mini döküm C:\Windows\Minidump yolunda saklanır

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

    C:\Windows\Memory.dmp konumunda bulunur

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

    Tüm Windows sistemleri, önemli bir hata tespit edildiğinde, RAM içeriğinin bir kilitlenme dökümünü (anlık görüntüsünü) oluşturur ve bunu sabit sürücüye kaydeder. Üç tür bellek dökümü vardır:

    Tam bellek dökümü – RAM'in tüm içeriğini kaydeder. Görüntü boyutu RAM + 1 MB (başlık) boyutuna eşittir. Büyük miktarda belleğe sahip sistemlerde döküm boyutu çok büyük olacağından çok nadiren kullanılır.

    Çekirdek bellek dökümü – yalnızca çekirdek moduyla ilgili RAM bilgilerini kaydeder. Kullanıcı modu bilgileri, sistem çökmesinin nedeni hakkında bilgi içermediğinden kaydedilmez. Döküm dosyasının boyutu RAM boyutuna bağlıdır ve 50 MB (128 MB RAM'e sahip sistemler için) ile 800 MB (8 GB RAM'e sahip sistemler için) arasında değişir.

    Küçük bellek dökümü (mini döküm) - oldukça az miktarda bilgi içerir: parametreler içeren bir hata kodu, sistem çökmesi sırasında RAM'e yüklenen sürücülerin listesi vb., ancak bu bilgi hatalı sürücüyü tanımlamak için yeterlidir. . Bu tür dökümün bir diğer avantajı da küçük dosya boyutudur.

    Sistem kurulumu

    Buna sebep olan sürücüyü tespit etmek için küçük bir hafıza dökümü kullanmamız yeterli olacaktır. Sistemin bir çökme sırasında mini dökümü kaydetmesi için aşağıdaki adımları uygulamanız gerekir:

    Windows XP için Windows 7 için
    1. Benim bilgisayarım Özellikler
    2. Sekmeye git Bunlara ek olarak;
    3. Seçenekler;
    4. Tarlada Hata Ayıklama Bilgilerini Yazma seçmek Küçük bellek dökümü (64 KB).
    1. Simgeye sağ tıklayın Bilgisayar içerik menüsünden seçim yapın Özellikler(veya Kazan+Duraklat tuş birleşimi);
    2. Soldaki menüde öğeye tıklayın Gelişmiş sistem Ayarları;
    3. Sekmeye git Bunlara ek olarak;
    4. İndirme ve kurtarma alanında düğmeye tıklamanız gerekir. Seçenekler;
    5. Tarlada Hata Ayıklama Bilgilerini Yazma seçmek Küçük bellek dökümü (128 KB).

    Tüm manipülasyonlar tamamlandıktan sonra, her BSoD'den sonra .dmp uzantılı bir dosya C:\WINDOWS\Minidump klasörüne kaydedilecektir. "" materyalini okumanızı tavsiye ederim. Ayrıca “kutucuğunu da işaretleyebilirsiniz. Mevcut döküm dosyasını değiştir" Bu durumda, her yeni kilitlenme dökümü eskisinin üzerine yazılacaktır. Bu seçeneği etkinleştirmenizi önermiyorum.

    BlueScreenView kullanarak kilitlenme dökümünü analiz etme

    Böylece, Ölümün Mavi Ekranı ortaya çıktıktan sonra sistem yeni bir kilitlenme hafıza dökümü kaydetti. Dökümü analiz etmek için BlueScreenView programını kullanmanızı öneririm. Ücretsiz olarak indirilebilir. Program oldukça kullanışlıdır ve sezgisel bir arayüze sahiptir. Kurduktan sonra yapmanız gereken ilk şey, sistemdeki bellek dökümlerinin depolanacağı konumu belirtmektir. Bunu yapmak için “ menü öğesine gidin Seçenekler” ve “ seçeneğini seçin GelişmişSeçenekler" Radyo düğmesini seçin “ Yükitibarenthetakip etmeMini Boşaltmadosya”ve dökümlerin depolandığı klasörü belirtin. Dosyalar C:\WINDOWS\Minidump klasöründe saklanıyorsa “ Varsayılan" Tamam'a tıklayın ve program arayüzüne gidin.

    Program üç ana bloktan oluşur:

    1. Ana menü bloğu ve kontrol paneli;
    2. Döküm listesi bloğunun çökmesi;
    3. Seçilen parametrelere bağlı olarak şunları içerebilir:
    • mavi ekran görünmeden önce RAM'deki tüm sürücülerin listesi (varsayılan olarak);
    • RAM yığınında bulunan sürücülerin listesi;
    • BSoD ekran görüntüsü;
    • ve kullanmayacağımız diğer değerler.

    Bellek dökümü listesi bloğunda (şekilde 2 numarayla işaretlenmiştir), ilgilendiğimiz dökümü seçin ve RAM'e yüklenen sürücülerin listesine bakın (şekilde 3 numarayla işaretlenmiştir). Bellek yığınındaki sürücüler pembe renktedir. Onlar BSoD'nin nedenidir. Daha sonra sürücünün Ana Menüsüne gidin, hangi cihaza veya programa ait olduklarını belirleyin. Öncelikle sistem dışı dosyalara dikkat edin çünkü sistem dosyaları her halükarda RAM'e yüklenir. Resimdeki hatalı sürücünün myfault.sys olduğunu görmek kolaydır. Bu programın özellikle Durdurma hatasına neden olmak için başlatıldığını söyleyeceğim. Arızalı sürücüyü belirledikten sonra güncellemeniz veya sistemden kaldırmanız gerekir.

    Bir BSoD oluştuğunda programın bellek yığınında bulunan sürücülerin bir listesini göstermesi için “ menü öğesine gitmeniz gerekir. Seçenekler“menüye tıklayın” Daha düşükBölmeMod” ve “ seçeneğini seçin SadeceSürücülerKurmakİçindeYığın” (veya F7 tuşuna basın) ve hatanın ekran görüntüsünü göstermek için “ MaviEkraniçindeXPStil” (F8). Tüm sürücülerin listesine geri dönmek için “ TümSürücüler” (F6).