热门问题
时间线
聊天
视角
PREFast for Drivers
来自维基百科,自由的百科全书
Remove ads
PREfast(Prefast.exe)是微軟公司為驅動程式設計所提供的靜態的原始碼分析工具(static source code analysis tool),可偵測原始程式碼中不易用一般編譯器找到的特定類型錯誤,與Windows DDK建置環境一同安裝。目前已整合至Visual Studio 2005 Team Suite中,使用時只要設置『Enable Code Analysis For C/C++』為『Yes』即可,接下來PREfast會攔截cl編譯器 (cl.exe) 的呼叫,產生由一次檢查所有檔案所得的單一聯合清單,內容屬於XML格式。
此條目沒有列出任何參考或來源。 (2016年6月15日) |
偵測錯誤類別:
- 記憶體:主記憶體泄露(memory leak)。
- 資源:沒能即時釋放資源。
- 函數使用方式:不正確的函數引數、使用某個過時函數的情況。
- 浮點運算狀態
- 優先執行規則
- 核心模式程式安全性考量
Remove ads
PREfast的工作
- 變量未初始化
void init() {
int a;
int b;
b = a;
}
- 運算元優先權的問題
void priority() {
int a = 1;
int b = 1;
int c = 1;
if(a & b == c)
return ;
}
- 記憶體溢位問題
void overrun() {
char buf[100];
char buf2[200];
int i = 100;
sprintf(buf, "size%d" , i);
strcpy(buf, buf2);
}
- 無窮循環
void infinite_loop() {
int i;
for(i = 100 ; i >= 0 ; i ++ ) {
;
}
}
- 運算元誤用
void op_misuse() {
int a = 2;
if (a = 2)
return ;
}
Remove ads
相關條目
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads