標籤:style blog http os 使用 ar 檔案 sp 2014
之前沒有接觸過驅動調試。這裡上手就要解決一個因為某個自訂驅動導致的系統登陸後藍屏問題,記錄下來。
問題:
從客戶那邊弄來的一個虛擬機器,已知是加了我們的驅動之後才會導致藍屏。
解決過程:
使用windbg直接雙機調試
開機登陸後會直接藍屏,錯誤碼是0x00000050。想要進入安全模式去移除驅動也進不去,會卡在某個驅動載入過程中。首要的就是進入系統去排查是哪個驅動有問題。還好是虛擬機器,有如下方式可更改作業系統中內容。,改完之後要在虛擬機器射中的使用工具中斷開相應映射。
注意:有些與具體裝置相關的驅動,無法直接通過更改驅動名稱來去掉驅動,因為註冊表裡填充了該驅動名,當系統啟動時找不到驅動也會藍屏。
通過windbg調試win7核心驅動,這裡有篇比較好的博文有比較系統的介紹。http://www.cnblogs.com/mvperic/archive/2010/07/25/1784790.html
問題來了,按照別人教的在windbg裡設定好符號路徑和原始碼路徑,連是連上了,可以似乎總是到一半就斷掉了。完全不知道怎麼回事啊。。。
於是請教了一下會的同事,還是沒找到原因,然後用另一個相同的系統,發現是可以掛上的,所以配置方法沒問題,沒有找到解決方案,那麼用windbg直接調試驅動這個方法暫時擱置了。
使用windbg分析dump檔案
開啟新的windbg視窗,設定好微軟符號伺服器srv*C:\symbolcache*http://msdl.microsoft.com/download/symbols;
以及自己的驅動pdb目錄、自己驅動的源碼路徑,以及Image路徑(即sys檔案路徑)。然後拖入dump檔案,介面效果如下,這時候手動敲入命令!Analyze -v,出現如下提示,OK,已經在進行分析了,稍等片刻,還會有更詳細的資訊,最終是這樣的效果,按alt+6開啟堆棧視窗,
如果這裡面有自己的驅動函數的話,雙擊就會跳到源碼中出問題的地方了。很像VS調試,我這裡是後面截的圖,所以沒有我的驅動了。
win7下自寫驅動導致開機藍屏調試過程