Saat masuk ke Windows 7 hari ini, PC saya langsung BSOD. Menggunakan WhoCrashed saya mendapatkan laporan berikut:
-
- Pada Sel 12.02.2013 13:56:20 GMT komputer Anda mogok
- File dump dump: C: \ Windows \ Minidump \ 021213-27390-01.dmp
- uptime: 00:00:25
- Ini mungkin disebabkan oleh modul berikut: ntoskrnl.exe (nt + 0x1AA698)
- Kode bugcheck : 0x1000007E (0xFFFFFFFFC0000096, 0xFFFFF80003610698, 0xFFFFF8800614C7B8, 0xFFFFF8800614C010)
- Galat: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M
- path file: C: \ Windows \ system32 \ ntoskrnl.exe
- produk: Sistem Operasi Microsoft® Windows®
- perusahaan: Microsoft Corporation
- deskripsi: Kernel & Sistem NT
- Deskripsi pemeriksaan bug: Ini menunjukkan bahwa utas sistem menghasilkan pengecualian yang tidak ditangkap oleh penangan kesalahan.
Ini tampaknya merupakan bug driver perangkat lunak tipikal dan tidak mungkin disebabkan oleh masalah perangkat keras. Kecelakaan terjadi di kernel Windows. Mungkin masalah ini disebabkan oleh pengemudi lain yang tidak dapat diidentifikasi saat ini.
-
Sekarang, PC saya sering macet / membeku dan pada tugas-tugas berat tertentu di masa lalu, tetapi penyebabnya (saya pikir) adalah slot RAM yang cacat pada motherboard saya. Mengosongkan slot itu menghentikan tabrakan.
Hari ini, crash lagi, dan saya belum mengubah apa pun yang berhubungan dengan perangkat keras.
Saya tahu saya bisa berkeliling Google membaca apa artinya kode bugcheck ini, tetapi belakangan saya menyadari bahwa pengalaman pribadi seseorang (dengan bugcheck / masalah yang sama) jauh lebih berguna, khususnya karena orang ini mungkin datang ke larutan.
Terima kasih banyak!
Jawaban:
Dalam kasus ini, utas menemui pengecualian
Kesalahan ini dimunculkan oleh CPU itu sendiri. Beberapa kode mencoba menjalankan instruksi yang tidak boleh dilakukan. Kemungkinan ini disebabkan oleh korupsi memori; di mana kode kernel mencoba mengeksekusi data sampah.
Kesalahan semacam ini benar-benar tidak mungkin untuk ditentukan. Ada kesalahan dalam kode "kernel" yang seharusnya tidak terjadi. Sangat tidak mungkin ada bug perangkat lunak dalam kode Microsoft apa pun; yaitu ketika Anda mulai mencari di tempat lain.
Overclocking . Terkadang hal-hal yang sangat aneh dapat terjadi ketika Anda melakukan overclock. Semoga semua orang mengirimkan Microsoft dump crash mereka; karena Microsoft memang menyelidiki mereka. Kesalahan umum yang akan mereka dapatkan adalah ketika CPU mengeksekusi instruksi:
Ini adalah operasi yang sangat sederhana yang dapat dijalankan CPU; itu hanya mengatur register CPU internal
EAX
ke nol. Tidak mungkin itu bisa gagal; kecuali saat Anda melakukan overclock - atau masalah fisik lainnya.tl; dr: Jika Anda telah menghapus perangkat lunak, maka itu perangkat kerasnya.
Pembaruan : Metodologi Pemecahan Masalah
Saya ingin menyebutkan detail yang saya lalui, hampir tanpa berpikir ketika melihat kesalahan ini.
Yang pertama adalah kode bugcheck yang sebenarnya:
Binging yang di Google memberikan halaman dokumentasi Microsoft
saya tahu, dari pengalaman menjadi pengembang, bahwa jika aplikasi saya (atau salah satu utasnya) mengalami "pengecualian" , dan saya tidak "menangani " pengecualian, Windows akhirnya akan menanganinya dengan mematikan aplikasi. Jika pengecualian tidak tertangani terjadi saat dalam mode kernel, OS tidak punya pilihan selain menanganinya dengan mematikan kernel. Apa yang saya tertarik adalah yang pengecualian sedang dilempar. saya berasumsi (salah, ternyata) itu adalah "Pelanggaran Akses" .
saya tahu bahwa semua bugcheck disertai dengan empat parameter yang menggambarkan apa yang sebenarnya terjadi:
Tapi apa artinya ini ?! Saat itulah kita kembali ke halaman dokumentasi, yang tidak menggambarkannya. Tapi itu tidak mengatakan:
Luar biasa. Dan halaman lain ini mendokumentasikan parameter:
Ini yang saya inginkan, kode pengecualian yang tidak ditangani . Dalam kasus Anda itu adalah kode pengecualian:
saya tahu, dari pengalaman, bahwa Anda menjalankan Windows 64-bit, karena kode itu panjangnya 64-bit. Sungguh saya hanya ingin 32-bit yang lebih rendah:
Biasanya saya akan berharap untuk menemukan kode kesalahan di
winerror.h
dalam direktori pengembangan saya; tapi itu tidak ada di sana. Butuh beberapa Binging, tetapi saya menemukan bahwa mencari:arahkan saya ke sebuah halaman di winehq , yang menyatakan konstanta:
Binging untuk konstanta itu menuntun saya halaman dokumentasi Microsoft kanonik :
Saya juga tahu bahwa pengecualian ini dilemparkan oleh CPU itu sendiri . Saya tahu itu karena "Privileged Instruction" berarti Anda mencoba menjalankan instruksi CPU yang tidak diizinkan. saya juga dapat mengetahui hal ini karena halaman tersebut disebut Pengecualian Perangkat Keras .
Jadi kita pada intinya adalah beberapa kode berjalan yang mencoba menjalankan instruksi CPU yang tidak seharusnya. Ada dua kemungkinan:
Karena kode Microsoft terus diuji di jutaan mesin setiap hari, kemungkinan besar:
Bagaimanapun, begitulah cara saya mengerjakan bugcheck itu. Mungkin dengan mengetahui bagaimana saya melewatinya, ini dapat membantu Anda saat berikutnya Anda memiliki bugcheck.
sumber