看板 uefacool
作者 標題 [ 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%/tools/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
回列表(←)
分享