Teknoloji Haberleri

UNEXPECTED_KERNEL_MODE_TRAP Hatası Nasıl Çözülür?

“UNEXPECTED_KERNEL_MODE_TRAP” mavi ekran hatasının neden olduğuna ve bu hatayı nasıl çözebileceğimize bakıyoruz.

Mavi ekran hatalarını analiz etmenin zahmetli olabileceği aşikar. Eğer siz de UNEXPECTED_KERNEL_MODE_TRAP hata kodu ile karşılaştıysanız, gelin birlikte analiz edelim.

İhtiyacımız olan yazılımlar

Öncelikle, mavi ekran hatalarını daha rahat analiz edebilmemiz için küçük bir yazılım olan BlueScreenView yazılımını bilgisayarımıza kurmalıyız. Bilgisayarınız 64 bit ise buradan, 32 bit ise de buradan BlueScreenView’ı indirebilirsiniz.

WinDbg programının arayüzü.

İsterseniz, güncellenen WinDbg Preview programını kullanarak daha detaylı bilgiler edinebilir ve daha iyi analizler yapabilirsiniz. WinDbg programı ile analiz yapmak istiyorsanız şu yazımızı referans alabilirsiniz.

Eğer hazırsanız, başlayalım!

“UNEXPECTED_KERNEL_MODE_TRAP” hatası nedir?

Bu hatanın karşınıza çıkma sebebi, x86 işlemcilerde olan istisna yakalama mekanizmasıdır. x86 işlemcilerde 3 türlü istisna vardır:

  • Fault: Bu istisnalar düzeltilebilen türde istisnalardır ve program (veya işletim sistemi) hiçbir şey olmamışçasına devam edebilir.
  • Abort: Nadiren karşılaştığımız kurtarılamayan istisna çeşididir.
  • Trap: Bu tür istisnalar olur olmaz hemen rapor edilir. İşletim sisteminin bu istisnalar için bir tablosu bulunmaktadır.

UNEXPECTED_KERNEL_MODE_TRAP hatası, bahsettiğimiz “trap” türünde istisnaların yakalanamaması halinde oluşan bir hatadır. Windows’un NT çekirdeğinin çalışmayı kesip mavi ekran verme sebebi ise, bu hataların NT çekirdeği tarafından yakalanma yetkisinin olmayışı veya işlemcinin “double fault“, yani “hatanın hatası” durumuna düşmesidir. “Double fault” türü istisnalar, “abort” kategorisi altında değerlendirilmektedir, yani kurtarılamazdır.

Örneğin bir sayının sıfır ile bölünmesi durumu Windows NT çekirdeği tarafından yakalanmaya çalışırken, bu durumun bir tane daha istisna tetiklemesi bir “double fault” unsurdur, bu da Windows NT çekirdeğini durdurup UNEXPECTED_KERNEL_TRAP_MODE hata kodlu mavi ekran hatasına sebep olmaktadır.

BlueScreenView ile hata analizi

BlueScreenView’ı açtığınız zaman eğer sisteminizde çekirdek hata dökümleri olan minidump’lar mevcut ise bunlar doğrudan karşınıza çıkacaktır.

UNEXPECTED_KERNEL_MODE_TRAP mavi ekran hata kodu ve çözüm önerileri
BlueScreenView’ın arayüzü, ve işaretli bölümde bizim bu yazıda ilgilenmiş olduğumuz hata durmakta.

İşaretlediğimiz döküm dosyasına sağ tıkladığımız zaman, açılan menüden “Properties” (Özellikler) diyelim.

UNEXPECTED_KERNEL_MODE_TRAP mavi ekran hata kodu ve çözüm önerileri
Sağ tık menüsü. Alttan ikinci seçenek olan “Properties” (Özellikler) seçeneğine tıklayalım.

Karşımıza şöyle bir pencere gelecektir:

UNEXPECTED_KERNEL_MODE_TRAP mavi ekran hata kodu ve çözüm önerileri
“BlueScreenView” programının “Özellikler” penceresi.

Görmüş olduğunuz üzere BlueScreenView, minidump dosyamızdaki bilgileri derleyerek bizlere sundu. Burada hangi sürücünün mavi ekrana sebep olduğu gibi bilgileri görebilmekteyiz. Biz bu mavi ekranı “NotMyFault” isimli geliştirici aracı ile oluşturduğumuzdan dolayı, “myfault.sys” isimli sürücüden kaynaklandığı yazıyor.

Özellikler penceresindeki bilgiler ne işimize yarayacak?

Microsoft’un geliştiriciler ve mavi ekran analiz etmek isteyen kişiler için sunmuş olduğu bir tablo bulunuyor. Örneğin UNEXPECTED_KERNEL_TRAP_MODE hatası için bizlerden minidump’ın birinci parametresine bakmamız istenmiş ve şöyle bir tablo sunulmuş:

Parametre 1 Hata sebebi olan istisna kodu Açıklama
0x00000000 Sıfır ile bölüm hatası x86 işlemcilerde bölme işleminin yapıldığı “DIV” isimli Assembly komutunun bir parametresi sıfır olunca alınan hata. Genelde yazılım hatalarından dolayı olmakla beraber, bellek hataları gibi donanım hatalarından dolayı da olur.
0x00000004 Overflow İşlemcinin “overflow” (taşma) bayrağı aktifken “INTO” (“interrupt on overflow” – taşma esnasında kesinti) komutu çalışırsa, işlemci bu istisnayı oluşturacaktır.
0x00000005 Bounds Check Fault Bir değişken dizisinin (array) büyüklüğü, aranan endeksten küçükse bu hata oluşur. Örneğin 10 elemanlı dizide 64. elemanı arayınca oluşabilecek bir istisnadır.
0x00000006 Invalid Opcode İşlemcide tanımlı olmayan bir komut çalıştırılmaya çalışılmış. Genelde bellek arızası bu soruna sebep olabilir.
0x00000008 Double Fault Yazının başında da bahsettiğimiz gibi, bir istisna yakalanmaya çalışılırken oluşan istisna durumudur. Bir nevi “hatanın hatası“. Genelde “stack overflow” (yığın bellek taşması) hatalarından dolayı olmaktadır.

Ekstra olarak çok nadir durumlarda birinci parametre, bu değerleri de alabilir:

Parametre 1 Açıklama
0x00000001 Sistem hata ayıklama çağrısı.
0x00000003 Hata ayıklayıcı durma noktası (breakpoint). Hata ayıklayıcı kullanıyorsanız, çoğu hata ayıklayıcı program bu istisnayı yakalayabildiği için bu durumun olma olasılığı çok düşüktür.
0x00000007 FPU (ondalık işlem birimi) komutu çalıştırılmasına rağmen FPU’ya ulaşılamıyor. Eğer 90’lardan kalma bir bilgisayara sahip değilseniz bu sebepten dolayı mavi ekranın olma ihtimali çok çok düşüktür, çünkü artık FPU’lar işlemcilere entegre gelmekte.
0x0000000A İşletim sistemlerinde çalışmakta olan bir uygulamanın bilgilerini tutan veri yapısı Task State Segment (TSS) bozukluğu.
0x0000000B Bir uygulama var olmayan bellek bölümüne erişmeye çalışınca bu değer verilir. İşletim sistemlerinin bellek yönetim mekanizmaları hakkında daha fazla bilgi için şu yazımızı okuyabilirsiniz.
0x0000000C Belleğin stack limitinin dışında bir yere erişilmeye çalışıldığında ve Windows NT çekirdeği buna izin vermeyince parametreye bu değer atanıyor. Eğer sizin yaptığınız uygulama veya sürücüden dolayı bu mavi ekranı alıyorsanız, stack yerine heap belleği kullanabilirsiniz.
0x0000000D Genel koruma hatası. Segmentasyon hatası, işlemcinin çekirdek modunda olmamasına rağmen (ring 0) çekirdek modu komutlarının işlenmesi belli başlı sebepleridir.

Fakat bu nadir durumlardan korkmamıza gerek yok, çünkü bu listedeki çoğu durum Windows NT çekirdeğinin istisna yakalama mekanizmaları tarafından işlenip hata mesajı olarak kullanıcıya sunuluyor.

Eğer minidump’ınızdaki parametre bu tablodaki herhangi bir parametre ile uyuşmuyor ise, şu sayfadaki tablodan veya Intel’in x86 mimarisi için yayınlamış olduğu Intel Developer’s Manual’dan minidump’ınızdaki parametrenin ne anlama geldiğini bulabilirsiniz.

UNEXPECTED_KERNEL_MODE_TRAP hatasının asıl sebebi

Genellikle bu hataya sebebiyet veren şey, arızalı veya uyumsuz bir donanımdır. Özellikle bellek uyumsuzlukları bu hataya sebebiyet verir.

Ayrıca çekirdek seviyesinde yığın bellek taşması (stack overflow) olduğu zaman da bu hata karşınıza çıkar. Yukarıdaki resimlerin ait olduğu sanal makinemiz işte bu hata ile bir mavi ekran vermiş.

Donanımsal Çözüm önerileri

Eğer bilgisayarınıza son zamanlarda bir donanım eklediyseniz, bu donanımı sökün ve hata durumunu gözlemleyin. Eğer sistem stabil ise, donanımınızı değiştirebilirsiniz. Varsa, sistem üreticisinin üretmiş olduğu teşhis yazılımını kullanın.

Bu hatanın diğer bir sebebi ise bellek olabilir. Memtest86+ gibi araçlar ile belleğinizdeki hataları tespit edebilirsiniz.

Sisteme bağlı depolama aygıtlarının Windows sürümünüz ile uyumlu olduğundan emin olun ve her zaman en güncel Windows 10 sürümünü kullanın.

Ayrıca anakartınızdaki bozuk bir bileşen bu hatayı tetikliyor olabilir. Eğer güç kaynağınızda sorun var ise, bu da soruna sebebiyet verebilir.

Sisteminizde overclock varsa, sorunun kaynağı olabilir. Eğer mevcut ise, BIOS’un “memory caching” yapmasını önleyin.

Yazılımsal Çözüm Önerileri

“Olay Görüntüleyicisi” programının arayüzü. Size Windows NT’de olanı biteni söyler.

Olay Görüntüleyicisi’nden neden bu sorunu yaşadığınız hakkında daha iyi bir açıklama duyabilirsiniz.

Bilgisayarınıza bağlı olan aygıtların firmware güncellemeleri varsa güncelleyin. Hatalı bir firmware, bu hatanın aktörü olabilir.

Eğer Windows sürümünü güncelleme yolu ile yükselttiyseniz, yazılımsal bir uyumsuzluk durumu olması muhtemel. Eski Windows sürümünüzde çalışan sürücü, antivirüs veya uygulamalar yeni sürümde çalışmayabilir veya düzgün çalışmayabilir. Bu sebepten ötürü sizlere temiz kurulum yapmanızı tavsiye ederiz.

Özet

Mavi ekran hatalarının genel sebepleri bir uygulamadan ziyade Windows NT çekirdeği ile birlikte çalışan donanım sürücüleri veya donanımlardır. Ayrıca minidump dosyaları bizlere sorunun nerde olduğunu tam anlamı ile belirtmektedir. Eğer bir mavi ekran hatası aldıysanız Technopat Sosyal’de özel olarak açtığımız Mavi Ekran hata analizi bölümünde konu açabilir, bu yazı hakkında soru ve eklemeleriniz için aşağıdaki “Yorumlar” kısmını kullanabilirsiniz.


Tekno Nesil

Teknonesil.com sitesi içeriği tamamen bilgi amaçlı olup Teknoloji hakkında güncel hayata dair merak edilen tüm konuları ele alan ve en doğru bilgileri en güncel haliyle okuyucularına ulaştırmayı amaçlayan teknoloji sitesi.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu