如果很不幸——藍屏了怎么辦?記一次奇怪的藍屏IRQL_NOT_LESS_OR_EQUAL


不知從什么時候,我的電腦出現了一個奇怪的問題,在某些軟件里上傳文件的時候只要一上傳就出現IRQL_NOT_LESS_OR_EQUAL的錯誤,然后藍屏重啟。最開始是IE會這樣,后來連chrome都是這樣。谷歌百度了半天都沒有找出原因,今天又出現了,終於解決了這個問題。這里記一下,希望能幫助到遇到類似情況的朋友。

首先亮出我的配置:

機器:DELL M800

內存:16GB

顯卡:Intel集顯+Nvidia k2100M

其他信息無關緊要,就不羅列了。

說一下遇到的問題及解決辦法。

問題:在瀏覽器(IE或者chrome)上傳文件時瞬間藍屏,重啟后問題依舊。

解決過程:

1.在谷歌搜索browser upload blue screen,然后出來一堆結果,通過標題和摘要信息過濾到不相關的,在打開相關頁面查看,其中有一個說是內存問題,部分內存壞了。於是下載了個內存測試軟件MemTest64(下載:http://nl1-dl.techpowerup.com/files/5Ppc_mWYURA3ZxYB6kkLbg/1519796308/MemTest64.exe),下載來運行軟件提示我虛擬內存小(我設置了4GB),好吧,讓windows自動管理,虛擬內存跟實際內存一樣大了。結果測試了半天,沒有發現任何錯誤。

2.既然不是內存錯誤,搜索也沒有什么新的突破。剛好,有導出文件(藍屏時系統導出的文件,在C:\Windows\Minidump里)。因為以前看到過有分析這個文件的文章,不過看上去比較煩也就沒仔細看了。今天先看看有沒有這方面的自動分析工具,於是谷歌dump file analysis,第一條記錄就是,還是online的,真是太好了(鏈接:http://www.osronline.com/page.cfm?name=Analyze)。按照提示上傳文件,不一會兒出來一堆分析,不是很懂,瀏覽了一遍,得出兩個結論:(1)這個一般是由某個驅動錯誤造成的;(2)進一步的信息需要debug(這家公司還提供了一個windebug工具: Windows Kernel Debugging and Crash Dump Analysis Seminar ,不過我是沒打開,有興趣的朋友試試)。

順帶貼一下分析結果

 

其實,上面的結果對某些專業人士來說,已經比較明白了,但是我不是這方面的專家,所以對我沒有太多用處。

3.看起來又陷入了死胡同。等等~~,什么,剛才上傳怎么沒有問題?回過頭看看這個上傳頁面和上傳按鈕,嗯,不錯,是最簡單最原始的。

所以,找到關鍵點了!出問題的上傳頁面都使用了HTML5!也就是說,出在了渲染的環節上,出問題的地方自然是顯卡驅動了!那么要重裝驅動嗎?不要!(一出問題就重裝系統的人都是菜鳥,只要見到這樣的帖子,我統統不看——包括微軟官方的)。因為顯卡驅動不久前重裝過,應該是沒有問題的,那問題可能就出在設置上!

打開nvidia的控制面板查看設置,找來找去,覺得可能是”垂直同步“這個選項的問題,我的設置是”使用3D應用程序設置",然后選擇“關”,點“應用”,再試,結果,好了!

問題是解決了,那么就該到此結束嗎?顯然這不符合一個程序猿的精神,既然發現了問題就要追根究底!現在會過去看上面的錯誤信息里有一項是:

FAILURE_BUCKET_ID:  X64_AV_nt!KiTryUnwaitThread+32

 說實話,我也不知道這個模塊的准確意思,但是可以猜啊,那個TryUnwait不就是說在等待的時候出問題了嗎?什么意思?顯卡的垂直同步功能就是要讓顯卡的輸出和顯示器的刷新相匹配,顯卡先將結果輸出到緩沖區,然后等顯示器刷新好了再輸出更新的畫面,而我的設置是“使用3D應用程序設置”,並且這個是全局配置,瀏覽器自然默認使用了這個設置,但是瀏覽器的渲染程序應該是沒有做這樣的處理的(也許是瀏覽器的bug,傳統上,我們對瀏覽器的要求都比較低,但H5時代,應該有更高要求),所以系統一直在那里等瀏覽器決定啊,是開垂直同步還是不開垂直同步?因為瀏覽器沒有處理這個回調,所以系統那里拿到的數據是非法的,也就只有藍屏了。當我們把垂直同步關閉的時候,自然問題就解決了。

亡羊補牢:要注意默認設置,默認設置應該盡可能保守,因為你不知道使用它的程序是什么樣的!

因為我不怎么打游戲,所以這樣的設置也夠了。如果要打游戲的話,就打開垂直同步(我估計應該也沒問題,沒測試)或者針對游戲對應的程序做自定義的設置(這樣比較好)。

至此,問題解決!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM