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

Adanali

Member
“UNEXPECTED_KERNEL_MODE_TRAP” mavi ekran yanılgısının niye olduğuna ve bu yanılgıyı nasıl çözebileceğimize bakıyoruz.

Mavi ekran kusurlarını tahlil etmenin zahmetli olabileceği aşikar. Şayet siz de UNEXPECTED_KERNEL_MODE_TRAP yanılgı kodu ile karşılaştıysanız, gelin birlikte tahlil edelim.

Öncelikle, mavi ekran yanlışlarını daha rahat tahlil 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 ayrıntılı bilgiler edinebilir ve daha yeterli tahliller yapabilirsiniz. WinDbg programı ile tahlil yapmak istiyorsanız şu yazımızı referans alabilirsiniz.

Şayet hazırsanız, başlayalım!

Bu yanlışın karşınıza çıkma niçini, x86 işlemcilerde olan istisna yakalama sistemidir. x86 işlemcilerde 3 türlü istisna vardır:

  • Fault: Bu istisnalar düzeltilebilen tıpta 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ıp istisnalar olur olmaz çabucak rapor edilir. İşletim sisteminin bu istisnalar için bir tablosu bulunmaktadır.
UNEXPECTED_KERNEL_MODE_TRAP kusuru, bahsetmiş olduğumiz “trap” cinsinde istisnaların yakalanamaması halinde oluşan bir kusurdur. Windows’un NT çekirdeğinin çalışmayı kesip mavi ekran verme niçini ise, bu yanlışların NT çekirdeği tarafınca yakalanma ytesirinin olmayışı yahut işlemcinin “double fault“, yani “yanlışın yanılgısı” durumuna düşmesidir. “Double fault” çeşidi istisnalar, “abort” kategorisi altında bedellendirilmektedir, yani kurtarılamazdır.

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

BlueScreenView’ı açtığınız vakit şayet sisteminizde çekirdek yanılgı dökümleri olan minidump’lar mevcut ise bunlar direkt karşınıza çıkacaktır.

BlueScreenView’ın arayüzü, ve işaretli kısımda bizim bu yazıda ilgilenmiş olduğumuz yanılgı durmakta.

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

Sağ tık menüsü. Alttan ikinci seçenek olan “Properties” (Özellikler) seçeneğine tıklayalım.

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

“BlueScreenView” programının “Özellikler” penceresi.

Görmüş olduğunuz üzere BlueScreenView, minidump belgemizdeki ayrıntıları derleyerek bizlere sundu. Burada hangi şoförün mavi ekrana sebep olduğu üzere ayrıntıları nazaranbilmekteyiz. Biz bu mavi ekranı “NotMyFault” isimli geliştirici aracı ile oluşturduğumuzdan dolayı, “myfault.sys” isimli şoförden kaynaklandığı yazıyor.

Microsoft’un geliştiriciler ve mavi ekran tahlil etmek isteyen bireyler için sunmuş olduğu bir tablo bulunuyor. Örneğin UNEXPECTED_KERNEL_TRAP_MODE yanlışı için bizlerden minidump’ın birinci parametresine bakmamız istenmiş ve şu biçimde bir tablo sunulmuş:

Parametre 1Kusur niçini olan istisna koduAçıklama
0x00000000Sıfır ile kısım yanılgısıx86 işlemcilerde bölme sürecinin yapıldığı “DIV” isimli Assembly komutunun bir parametresi sıfır olunca alınan kusur. Genelde yazılım yanılgılarından dolayı olmakla birlikte, bellek yanılgıları üzere donanım yanlışlarından dolayı da olur.
0x00000004Overflowİşlemcinin “overflow” (taşma) bayrağı faalken “INTO” (“interrupt on overflow” – taşma esnasında kesinti) komutu çalışırsa, işlemci bu istisnayı oluşturacaktır.
0x00000005Bounds Check FaultBir değişken dizisinin (array) büyüklüğü, aranan endeksten küçükse bu yanılgı oluşur. Örneğin 10 elemanlı dizide 64. elemanı arayınca oluşabilecek bir istisnadır.
0x00000006Invalid Opcodeİşlemcide tarifli olmayan bir komut çalıştırılmaya çalışılmış. Genelde bellek arızası bu meseleye sebep olabilir.
0x00000008Double FaultYazının başında da bahsetmiş olduğumiz üzere, bir istisna yakalanmaya çalışılırken oluşan istisna durumudur. Bir nevi “kusurun yanlışı“. Genelde “stack overflow” (yığın bellek taşması) yanılgılarından dolayı olmaktadır.

Ekstra olarak epey ender durumlarda birinci parametre, bu kıymetleri de alabilir:

Parametre 1Açıklama
0x00000001Sistem yanılgı ayıklama daveti.
0x00000003Yanılgı ayıklayıcı durma noktası (breakpoint). Yanılgı ayıklayıcı kullanıyorsanız, birden fazla kusur ayıklayıcı program bu istisnayı yakalayabildiği için bu durumun olma mümkünlüğü epey düşüktür.
0x00000007FPU (ondalık süreç ünitesi) komutu çalıştırılmasına karşın FPU’ya ulaşılamıyor. Şayet 90’lardan kalma bir bilgisayara sahip değilseniz bu sebepten dolayı mavi ekranın olma ihtimali fazlaca epeyce düşüktür, zira artık FPU’lar işlemcilere entegre gelmekte.
0x0000000Aİşletim sistemlerinde çalışmakta olan bir uygulamanın ayrıntılarını tutan bilgi yapısı Task State Segment (TSS) bozukluğu.
0x0000000BBir uygulama var olmayan bellek bölümüne erişmeye çalışınca bu bedel verilir. İşletim sistemlerinin bellek idare sistemleri hakkında daha fazla bilgi için şu yazımızı okuyabilirsiniz.
0x0000000CBelleğin stack limitinin haricinde bir yere erişilmeye çalışıldığında ve Windows NT çekirdeği buna müsaade vermeyince parametreye bu kıymet atanıyor. Şayet sizin yaptığınız uygulama yahut şoförden dolayı bu mavi ekranı alıyorsanız, stack yerine heap belleği kullanabilirsiniz.
0x0000000DGenel muhafaza yanlışı. Segmentasyon kusuru, işlemcinin çekirdek modunda olmamasına karşın (ring 0) çekirdek modu komutlarının işlenmesi aşikâr başlı sebepleridir.

Ancak bu ender durumlardan korkmamıza gerek yok, zira bu listedeki birden fazla durum Windows NT çekirdeğinin istisna yakalama sistemleri tarafınca işlenip kusur bildirisi olarak kullanıcıya sunuluyor.

Şayet minidump’ınızdaki parametre bu tablodaki rastgele 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 manaya geldiğini bulabilirsiniz.

Ekseriyetle bu kusura niçiniyet veren şey, arızalı yahut uyumsuz bir donanımdır. Bilhassa bellek uyumsuzlukları bu yanlışa niçiniyet verir.

Ayrıyeten çekirdek düzeyinde yığın bellek taşması (stack overflow) olduğu vakit da bu kusur karşınıza çıkar. Üstteki fotoğrafların ilişkin olduğu sanal makinemiz işte bu yanılgı ile bir mavi ekran vermiş.

Donanımsal Tahlil teklifleri

Şayet bilgisayarınıza son vakit içinderda bir donanım eklediyseniz, bu donanımı sökün ve yanılgı durumunu gözlemleyin. Şayet sistem stabil ise, donanımınızı değiştirebilirsiniz. var ise, sistem üreticisinin üretmiş olduğu teşhis yazılımını kullanın.

Bu yanılgının öteki bir niçini ise bellek olabilir. Memtest86+ üzere araçlar ile belleğinizdeki kusurları tespit edebilirsiniz.

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

Ayrıyeten anakartınızdaki bozuk bir bileşen bu yanılgıyı tetikliyor olabilir. Şayet güç kaynağınızda sorun varsa, bu da probleme niçiniyet verebilir.

Sisteminizde overclock var ise, sorunun kaynağı olabilir. Şayet mevcut ise, BIOS’un “memory caching” yapmasını önleyin.

Yazılımsal Tahlil Teklifleri

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

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

Bilgisayarınıza bağlı olan aygıtların firmware güncellemeleri var ise güncelleyin. Kusurlu bir firmware, bu yanılgının aktörü olabilir.

Şayet Windows sürümünü güncelleme yolu ile yükselttiyseniz, yazılımsal bir uyumsuzluk durumu olması beklenen. Eski Windows sürümünüzde çalışan şoför, antivirüs yahut uygulamalar yeni sürümde çalışmayabilir yahut düzgün çalışmayabilir. Bu sebepten ötürü sizlere pak suram yapmanızı tavsiye ederiz.

Mavi ekran yanılgılarının genel sebepleri bir uygulamadan fazla Windows NT çekirdeği ile birlikte çalışan donanım şoförleri yahut donanımlardır. Ayrıyeten minidump belgeleri bizlere sorunun nerde olduğunu tam manası ile belirtmektedir. Şayet bir mavi ekran yanılgısı aldıysanız Technopat Sosyal’de özel olarak açtığımız Mavi Ekran yanılgı tahlili kısmında bahis açabilir, bu yazı hakkında soru ve eklemeleriniz için aşağıdaki “Yorumlar” kısmını kullanabilirsiniz.