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

“UNEXPECTED_KERNEL_MODE_TRAP” mavi ekran yanılgısının neden olduğuna ve bu yanılgıyı nasıl çözebileceğimize bakıyoruz.
Mavi ekran yanılgılarını tahlil etmenin zahmetli olabileceği aşikar. Şayet siz de UNEXPECTED_KERNEL_MODE_TRAP kusur 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 güzel 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 sebebi, x86 işlemcilerde olan istisna yakalama sistemidir. x86 işlemcilerde 3 türlü istisna vardır:
- Fault: Bu istisnalar düzeltilebilen cinste 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 yanılgısı, bahsettiğimiz “trap” çeşidinde istisnaların yakalanamaması halinde oluşan bir yanılgıdır. Windows’un NT çekirdeğinin çalışmayı kesip mavi ekran verme sebebi ise, bu yanılgıların NT çekirdeği tarafından yakalanma yetkisinin olmayışı yahut işlemcinin “double fault“, yani “yanılgının yanılgısı” durumuna düşmesidir. “Double fault” çeşidi istisnalar, “abort” kategorisi altında kıymetlendirilmektedir, 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” ögedir, bu da Windows NT çekirdeğini durdurup UNEXPECTED_KERNEL_TRAP_MODE kusur kodlu mavi ekran yanılgısı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 belgesine 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 şöyle bir pencere gelecektir:

“BlueScreenView” programının “Özellikler” penceresi.
Görmüş olduğunuz üzere BlueScreenView, minidump belgemizdeki bilgileri derleyerek bizlere sundu. Burada hangi şoförün mavi ekrana sebep olduğu üzere bilgileri görebilmekteyiz. Biz bu mavi ekranı “NotMyFault” isimli geliştirici aracı ile oluşturduğumuzdan ötürü, “myfault.sys” isimli şoförden kaynaklandığı yazıyor.
Microsoft’un geliştiriciler ve mavi ekran tahlil etmek isteyen şahıslar için sunmuş olduğu bir tablo bulunuyor. Örneğin UNEXPECTED_KERNEL_TRAP_MODE yanılgısı için bizlerden minidump’ın birinci parametresine bakmamız istenmiş ve şöyle bir tablo sunulmuş:
| Parametre 1 | Yanılgı sebebi olan istisna kodu | Açıklama |
| 0x00000000 | Sıfır ile kısım kusuru | 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 yanlışlarından ötürü olmakla birlikte, bellek yanlışları üzere donanım yanılgılarından ötürü da olur. |
| 0x00000004 | Overflow | İşlemcinin “overflow” (taşma) bayrağı etkinken “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 kusur oluşur. Örneğin 10 elemanlı dizide 64. elemanı arayınca oluşabilecek bir istisnadır. |
| 0x00000006 | Invalid Opcode | İşlemcide tarifli olmayan bir komut çalıştırılmaya çalışılmış. Genelde bellek arızası bu meseleye sebep olabilir. |
| 0x00000008 | Double Fault | Yazının başında da bahsettiğimiz üzere, bir istisna yakalanmaya çalışılırken oluşan istisna durumudur. Bir nevi “yanılgının yanlışı“. Genelde “stack overflow” (yığın bellek taşması) yanlışlarından ötürü olmaktadır. |
Ekstra olarak çok az durumlarda birinci parametre, bu kıymetleri de alabilir:
| Parametre 1 | Açıklama |
| 0x00000001 | Sistem yanılgı ayıklama daveti. |
| 0x00000003 | Kusur ayıklayıcı durma noktası (breakpoint). Kusur 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üğü çok düşüktür. |
| 0x00000007 | FPU (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 ötürü mavi ekranın olma ihtimali çok çok düşüktür, zira artık FPU’lar işlemcilere entegre gelmekte. |
| 0x0000000A | İşletim sistemlerinde çalışmakta olan bir uygulamanın bilgilerini tutan data yapısı Task State Segment (TSS) bozukluğu. |
| 0x0000000B | Bir uygulama var olmayan bellek bölümüne erişmeye çalışınca bu paha verilir. İşletim sistemlerinin bellek idare düzenekleri 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 müsaade vermeyince parametreye bu paha atanıyor. Şayet sizin yaptığınız uygulama yahut şoförden ötürü bu mavi ekranı alıyorsanız, stack yerine heap belleği kullanabilirsiniz. |
| 0x0000000D | Genel müdafaa yanlışı. Segmentasyon yanlışı, işlemcinin çekirdek modunda olmamasına karşın (ring 0) çekirdek modu komutlarının işlenmesi belirli başlı sebepleridir. |
Ancak bu ender durumlardan korkmamıza gerek yok, zira bu listedeki birçok durum Windows NT çekirdeğinin istisna yakalama düzenekleri tarafından işlenip kusur iletisi 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.
Çoklukla bu yanılgıya sebebiyet veren şey, arızalı yahut uyumsuz bir donanımdır. Bilhassa bellek uyumsuzlukları bu kusura sebebiyet verir.
Ayrıyeten çekirdek düzeyinde yığın bellek taşması (stack overflow) olduğu vakit da bu yanılgı karşınıza çıkar. Üstteki fotoğrafların ilişkin olduğu sanal makinemiz işte bu kusur ile bir mavi ekran vermiş.
Donanımsal Tahlil teklifleri
Şayet bilgisayarınıza son vakitlerde bir donanım eklediyseniz, bu donanımı sökün ve kusur durumunu gözlemleyin. Şayet 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 yanlışın öbür bir sebebi 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 var ise, bu da probleme sebebiyet verebilir.
Sisteminizde overclock varsa, 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 neden bu sorunu yaşadığınız hakkında daha âlâ bir açıklama duyabilirsiniz.
Bilgisayarınıza bağlı olan aygıtların firmware güncellemeleri varsa güncelleyin. Yanılgılı bir firmware, bu kusurun 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 dolayı sizlere pak heyetim yapmanızı tavsiye ederiz.
Mavi ekran kusurlarının genel sebepleri bir uygulamadan çok 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 kusuru aldıysanız Technopat Sosyal’de özel olarak açtığımız Mavi Ekran yanılgı tahlili kısmında mevzu açabilir, bu yazı hakkında soru ve eklemeleriniz için aşağıdaki “Yorumlar” kısmını kullanabilirsiniz.
Kaynak: Technopat