用VSTS代碼驗證工具捕捉C/C++錯誤

發表于:2009-05-22來源:作者:點擊數: 標簽:代碼工具VSTSvsts驗證
對一個C++本機代碼(Native Code) 開發 者來說, Visual Studio Team System 對整個軟件開發周期都提供了支持, VSTS 源代碼注釋使開發者在靜態代碼分析或單元 測試 中,可以用方法參數前置或后置的有效條件來注釋方法,且當注釋違例時,會有相應的編譯器警告
對一個C++本機代碼(Native Code)開發者來說,Visual Studio Team System對整個軟件開發周期都提供了支持,VSTS源代碼注釋使開發者在靜態代碼分析或單元測試中,可以用方法參數前置或后置的有效條件來注釋方法,且當注釋違例時,會有相應的編譯器警告,所以,可以這樣說,VSTS提供了許多功能來幫助本機程序開發者。本文將著眼于VSTS驗證程序,它是一個分析工具,用于監控非托管代碼的執行,并可以發現如不正確的內存分配、句柄使用等等錯誤。

  與此相比,動態分析是檢查那些傳遞給系統函數的關鍵變量值,以發現問題的,當方法被調用時,將會探測到某些非法參數,并上報給開發者;而使用非法參數時,某些問題不能被發現,只會在后續情況如內存崩潰、非正常程序退出等情況顯現出來。

  以應用程序驗證程序開始

  啟動應用程序驗證程序是一件非常簡單的事,只需選擇“調試-以應用程序驗證程序開始”即可,如圖1所示。

 


圖1 啟動應用程序驗證程序

  第一次使用應用程序驗證程序時,Visual Studio會提示你下載一個額外的DLL,此DLL將用于檢查句柄及堆,可能需要管理員權限來安裝這個補丁。

  對應用程序驗證程序的大多數使用者來說,最難之處在于要記住運行這個驗證程序,而不是啟動一次標準的調試會話。假定在使用驗證程序時,也可以使用標準調試,建議啟動驗證程序會話(Shift+Alt+F5),雖然比啟動調試會話(F5)多按了兩個鍵,但還是值得的。這樣一來,就可以在每次產生調試會話時,都充分利用驗證程序了。

當應用程序驗證程序探測到一個問題時,它會停止執行流程,并顯示一個如下的對話框,如圖2所示:

 


圖2 驗證程序停止信息

  通常來說,診斷此類問題一般為查看能導致驗證程序停止執行的句柄、鎖、或堆指針信息,并回溯到崩潰發生之前的執行點。然而,這不會總是最簡單的調試方法,在堆或文件崩潰是問題的唯一原因時,你不一定記得起來要啟動一個調試過程。

  當驗證程序停止執行流程時,一個詳細的問題描述也會被添加到任務視圖中,如圖3所示。任務視圖中的信息便于觀看,而圖2的對話框則需要先“消失”,開發者才能進入到調試器檢查變量值。

 


圖3 驗證程序任務列表視圖

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97