顯示廣告
隱藏 ✕
看板 uefacool
作者 uefangsmith (唉呦!不錯哦~)
標題 [ WDK  ] WDK中的Prefast工具使用
時間 2012年06月27日 Wed. PM 02:30:59


http://blog.csdn.net/seasonpplp/article/details/6133766


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%/tool​​s/pfd/。你如果想寫到別的目錄下,你可以使用/LOG= 參數來切換.

#Command for log
prefast /LOG=D:\Project\Prefast\prefastlog.txt build -cZ

PREfast分析結果
你可以使用下面的命令來顯示分析的結果:

·  使用prefast view 命令來在窗口中顯示分析結果

使用prefast list 命令在編譯環境中顯示檢測結果. 就是在那個cmd窗口下顯示。
--
※ 作者: uefangsmith 時間: 2012-06-27 14:30:59
※ 編輯: uefangsmith 時間: 2012-06-28 13:52:50
※ 看板: uefacool 文章推薦值: 0 目前人氣: 0 累積人氣: 24 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇