WDK中的Prefast工具使用
PREfast
你可以使用PREfast來分析核心模式的驅動(KMDF)和其他核心模式的元件。你也可以使用PREfast來分析使用者模式的驅動,即UMDF。PREfast是WDK自帶的,你不需要自己再次安裝。
預設情況下, PREfast是根據KMDF的規則來分析程式碼的。為了能夠分析UMDF,你必須設定分析模式為__user_driver,詳情見 “如何指定PREfast分析模式”, 或者更簡單的方式是,直接忽略核心相關的警告.
PREfast 分析模式
PREfast分析模式決定了它分析程式碼是所採用的規則。The analysis-mode annotation that is defined in %wdk%/inc/ddk/driverspecs.h informs PREfast whether a particular body of code is user-mode or kernel-mode code and whether the code is actually a driver. This annotation applies to an entire source file.
分析模式可以是下面模式定義中的一個:
__kernel_driver
對應核心驅動程式碼. 這個是預設的分析模式。
__kernel_code
對應核心模式非驅動程式碼。
__user_driver
對應使用者模式的驅動程式碼。
__user_code
對應使用者模式非驅動程式碼。
如果__kernel_driver 分析模式對於一個特定的驅動來說,是一個錯誤的分析的模式,你可以在原始碼檔案或者合適的標頭檔案中插入合適的分析模式定義,來實現分析模式的自定義,當然了,這個定義必須放在任何函式之前,最好的一個做法就是放在#include 或者語句之後。
如何執行PREfast
1. 開啟你的編譯環境的視窗。
2. 使用 cd 命令進入你的原始碼目錄.
3. 輸入prefast build, 也可以帶有build的引數,例如:
prefast build –cZ
PREfast分析程式碼,然後把分析的結果寫入到xml檔案,預設的xml檔案是Defects.xml,它的路徑是 %wdk%/tools/pfd/。 你如果想寫到別的目錄下,你可以使用 /LOG= 引數來切換.
PREfast分析結果
你可以使用下面的命令來顯示分析的結果:
· 使用prefast view 命令來在視窗中顯示分析結果。如下圖:
· 使用prefast list 命令在編譯環境中顯示檢測結果. 就是在那個cmd視窗下顯示。
我就著重介紹一下PREfast defect log viewer 吧,因為這個我感覺用著比較方便,它提供了一個圖形化的視窗。
在Message List中, 你可以有如下操作:
· 點選列表頭—Description, Warning, Source Location, or In Function—用來給這些訊息排序.
· 雙擊一個訊息就開啟了View Annotated Source 介面,顯示了這個訊息相關的程式碼段.如下圖
注:點選Show Entire File按鈕顯示整個檔案。
· 點選Filter按鈕 顯示了過濾規則,在這裡你可以選擇相關的過濾規則。如下圖:
注:點選Invert隱藏你所選中的過濾規則。
相關文章
- 學習:瞭解WDK目錄
- QT中 uic 工具的使用QTUI
- rac中的cluvfy檢查工具使用
- VC6.0 + WDK 7600.16385.1 開發環境配置開發環境
- 軟體測試中需要使用的工具
- WDK10+VS2015 驅動環境搭建
- WDK10編譯出最適合申請WHQL認證的驅動編譯
- MATLAB中神經網路工具箱的使用Matlab神經網路
- doDBA工具的使用
- 其他工具的使用
- MVMC工具的使用
- yum工具的使用
- CLUVFY工具的使用
- MYSQLBACKUP工具的使用MySql
- DBVERIFY 工具的使用
- 【工具】screen 的使用
- 【工具】lsof 的使用
- TraceView工具的使用View
- ldd工具的使用
- dumpbin工具的使用
- windows中好用的工具Windows
- Collections工具類,可以使用collections工具類對程式碼中的list進行分組
- chrome開發者工具的使用Chrome
- EXPDP/IMPDP工具的使用
- Oracle bbed工具的使用Oracle
- Logmnr 工具的使用
- exp/imp工具的使用
- Expdp,impdp工具的使用
- 【RAC】OIFCFG 工具的使用
- 『政善治』Postman工具 — 8、Postman中Pre-request Script的使用Postman
- 使用chrome開發者工具中的performance皮膚解決效能瓶頸ChromeORM
- 使用 nodejs 中的 http 模組實現幾個超實用的工具NodeJSHTTP
- Photoshop中的漸變工具
- OI 中的小技巧(工具)
- 報表工具中動態引數的使用方法和場景
- 軟體測試詳解—測試中需要使用的工具大全
- 6個使用正規表示式搜尋文字中內容的工具
- Eclipse與Android原始碼中ProGuard工具的使用(程式碼混淆)EclipseAndroid原始碼