驅動開發:使用WinDbg分析定位Windows藍屏問題
阿新 • • 發佈:2019-02-17
驅動開發中最頭痛的問題之一莫過於隨機的系統藍屏,一切灰飛煙滅。不過還好Windows有dump檔案可以幫助定位相關問題。如果藍屏時系統明確提示是你所開發的驅動的SYS檔案引起的藍屏,那就好確認了。
在這裡介紹使用WinDbg定位到藍屏的驅動的原始碼的方法。不過要滿足兩個條件:一.必須是所開發的驅動sys檔案引起的藍屏。二.要有原始碼。
定位方法:
一.使用原始碼編譯Debug版本的驅動檔案。必須是Debug版本,否則無法看到原始碼。
二.安裝驅動,執行,等待藍屏。
三.重啟之後,使用管理員許可權開啟WinDbg,設定Symbol File Path:如
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;D:\LWF_SOURCE\Solution\x64\Win7Debug
這裡有兩個路徑,一個是SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols,系統會自動下載相應的Symbol。另一個是D:\LWF_SOURCE\Solution\x64\Win7Debug,這個比較重要包含驅動的pdb檔案,如果沒有它,就無法定位到原始碼。
再設定Source File Path,如
D:\LWF_SOURCE\Solution,這個是驅動原始碼的根目錄。
四.開啟pdb檔案,執行!analyze -v命令。之後就能看到在哪一行程式碼出了問題。藍屏也就好解決多了。