細談VC程序調試的若干方法
天極IT資訊短信服務 電腦小技巧 資費:包月5元 手機: 介紹:細處著手,巧處用功。高手和菜鳥之間的差別就是:高手什么都知道,菜鳥知道一些。電腦小技巧收集最新奇招高招,讓你輕松踏上高手之路。 記得我剛開始用VC編程時,多次遇到程序編譯鏈接都沒有任何
天極IT資訊短信服務 電腦小技巧
|
介紹:細處著手,巧處用功。高手和菜鳥之間的差別就是:高手什么都知道,菜鳥知道一些。電腦小技巧收集最新奇招高招,讓你輕松踏上高手之路。 | |
記得我剛開始用VC
編程時,多次遇到程序編譯鏈接都沒有任何錯誤提示時運行卻發生意外錯誤或者陷入死機狀態,對此我真是茫然不知所措。后來經過項目工程的“洗禮”,我學到了一些解決這類錯誤的方法同時也將自己積累的經驗運用到
開發工作中,從而避免了重蹈覆轍,編程效率得以明顯提高。如果你用VC而不精通解決上述種種莫名其妙故障的調試技術,那么軟件的進度和
質量將無法保障。VC調試之重要不言而喻。
其實VC所依賴的
開發平臺Microsoft Developer Studio本身提供的調試功能并不弱,每當我們創建一個新的VC工程項目時,默認狀態就是De
bug(調試)版本,在"組建"(Build)菜單下的Configurations中可以看到除了調試版本還可以設置成發行(Release)版本。調試版本由于包含了大量信息,所以它生成的可執行程序容量會遠遠大于發行版。
具體地,調試版本主要增加了兩個內容:其一,會執行編譯命令_D_DE
BUG,使頭文件的調試語句ifdef及其代碼附加到程序中;其二,在可執行文件中加入的調試信息使開發人員能夠觀察變量,進行單步執行等。在VC"組建"(Build)菜單下的"開始調試"中有4條專用的調試命令:Go,Step into,Run to Cursor,Attach to process…。在運行程序源代碼時用Go命令(而不是Execute)才能處于調試狀態, Go命令會使程序運行變得緩慢下來,但可以更好地控制運行程序,我們可以在任何時刻中斷程序、單步執行、查看變量、檢查調用棧。
有必要詳細介紹一下VC的調試功能:首先,再次強調要用Go命令運行一個將要調試的程序;如果要中止調試狀態下的運行程序可以點擊Stop De
bugging命令,還可以通過Break選項以可恢復方式中斷調試程序的運行流程(用Restart選項可以重新開始運行程序);Step Into選項表示每次只執行一行語句(單步執行),但如果當前代碼是調用一個函數,那么Step Into表示進入該函數,全部函數語句執行完后返回,而Step Over則是跳出這個函數;Step To Cursor選項表示程序將執行到光標所在的可執行語句行上;在調試多線程程序時,可以在線程函數或主應用程序線程中設置斷點,還可以用Break選項結束線程后用Threads選項查看運行線程列表,也可以選擇懸掛和恢復每個線程;在設置斷點后,在VC "查看"菜單的"調試窗口"中可以查看變量、內存、調用堆棧、寄存器以及反匯編語句。在程序中設置斷點的方法是,點擊要設置的代碼行并點擊設置代碼的工具欄按鈕,會出現在代碼行最左邊的一個小黑點即是斷點標志,這時再選Go程序會在執行到端點處停下來,如果要繼續執行可以再選Go。
通過選擇VC"工具"菜單下的"源瀏覽器"可以生成一個.BSC文件,使用瀏覽器可以從中發現多種信息:程序中任何一個變量、函數、類或宏在何處定義及引用;可以列出所有聲明的函數類、變量、宏;可以發現調用一個指定函數的所有函數;可以找到一個指定類的派生來源或者它派生出哪些類。