vc++程序調(diào)試的方法

vc++程序調(diào)試的方法

ID:6674354

大?。?8.50 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-01-22

vc++程序調(diào)試的方法_第1頁(yè)
vc++程序調(diào)試的方法_第2頁(yè)
vc++程序調(diào)試的方法_第3頁(yè)
vc++程序調(diào)試的方法_第4頁(yè)
vc++程序調(diào)試的方法_第5頁(yè)
資源描述:

《vc++程序調(diào)試的方法》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、vc++程序調(diào)試的方法VC++6.0調(diào)試入門(mén)--------------------------------------------------------------------------------2009-04-2522:02:30 標(biāo)簽:調(diào)試   [推送到技術(shù)圈]概述調(diào)試是一個(gè)程序員最基本的技能,其重要性甚至超過(guò)學(xué)習(xí)一門(mén)語(yǔ)言。不會(huì)調(diào)試的程序員就意味著他即使會(huì)一門(mén)語(yǔ)言,卻不能編制出任何好的軟件。這里我簡(jiǎn)要的根據(jù)自己的經(jīng)驗(yàn)列出調(diào)試中比較常用的技巧,希望對(duì)大家有用。本文約定,在選擇菜單時(shí),通過(guò)/表示分級(jí)菜單,例如File/Open表示頂級(jí)菜單File的子菜單Op

2、en。設(shè)置為了調(diào)試一個(gè)程序,首先必須使程序中包含調(diào)試信息。一般情況下,一個(gè)從AppWizard創(chuàng)建的工程中包含的DebugConfiguration自動(dòng)包含調(diào)試信息,但是是不是Debug版本并不是程序包含調(diào)試信息的決定因素,程序設(shè)計(jì)者可以在任意的Configuration中增加調(diào)試信息,包括Release版本。為了增加調(diào)試信息,可以按照下述步驟進(jìn)行:打開(kāi)Projectsettings對(duì)話(huà)框(可以通過(guò)快捷鍵ALT+F7打開(kāi),也可以通過(guò)IDE菜單Project/Settings打開(kāi))選擇C/C++頁(yè),Category中選擇general,則出現(xiàn)一個(gè)DebugInfo下拉

3、列表框,可供選擇的調(diào)試信息方式包括:None沒(méi)有調(diào)試信息LineNumbersOnly目標(biāo)文件或者可執(zhí)行文件中只包含全局和導(dǎo)出符號(hào)以及代碼行信息,不包含符號(hào)調(diào)試信息C7Compatible目標(biāo)文件或者可執(zhí)行文件中包含行號(hào)和所有符號(hào)調(diào)試信息,包括變量名及類(lèi)型,函數(shù)及原型等ProgramDatabase創(chuàng)建一個(gè)程序庫(kù)(PDB),包括類(lèi)型信息和符號(hào)調(diào)試信息。ProgramDatabaseforEditandContinue除了前面/Zi的功能外,這個(gè)選項(xiàng)允許對(duì)代碼進(jìn)行調(diào)試過(guò)程中的修改和繼續(xù)執(zhí)行。這個(gè)選項(xiàng)同時(shí)使#pragma設(shè)置的優(yōu)化功能無(wú)效選擇Link頁(yè),選中復(fù)選框"Ge

4、nerateDebugInfo",這個(gè)選項(xiàng)將使連接器把調(diào)試信息寫(xiě)進(jìn)可執(zhí)行文件和DLL。如果C/C++頁(yè)中設(shè)置了ProgramDatabase以上的選項(xiàng),則Linkincrementally可以選擇。選中這個(gè)選項(xiàng),將使程序可以在上一次編譯的基礎(chǔ)上被編譯(即增量編譯),而不必每次都從頭開(kāi)始編譯。斷點(diǎn)斷點(diǎn)是調(diào)試器設(shè)置的一個(gè)代碼位置。當(dāng)程序運(yùn)行到斷點(diǎn)時(shí),程序中斷執(zhí)行,回到調(diào)試器。斷點(diǎn)是最常用的技巧。調(diào)試時(shí),只有設(shè)置了斷點(diǎn)并使程序回到調(diào)試器,才能對(duì)程序進(jìn)行在線(xiàn)調(diào)試。設(shè)置斷點(diǎn):可以通過(guò)下述方法設(shè)置一個(gè)斷點(diǎn)。首先把光標(biāo)移動(dòng)到需要設(shè)置斷點(diǎn)的代碼行上,然后按F9快捷鍵彈出Breakp

5、oints對(duì)話(huà)框,方法是按快捷鍵CTRL+B或ALT+F9,或者通過(guò)菜單Edit/Breakpoints打開(kāi)。打開(kāi)后點(diǎn)擊Breakat編輯框的右側(cè)的箭頭,選擇合適的位置信息。一般情況下,直接選擇linexxx就足夠了,如果想設(shè)置不是當(dāng)前位置的斷點(diǎn),可以選擇Advanced,然后填寫(xiě)函數(shù)、行號(hào)和可執(zhí)行文件信息。去掉斷點(diǎn):把光標(biāo)移動(dòng)到給定斷點(diǎn)所在的行,再次按F9就可以取消斷點(diǎn)。同前面所述,打開(kāi)Breakpoints對(duì)話(huà)框后,也可以按照界面提示去掉斷點(diǎn)。條件斷點(diǎn):可以為斷點(diǎn)設(shè)置一個(gè)條件,這樣的斷點(diǎn)稱(chēng)為條件斷點(diǎn)。對(duì)于新加的斷點(diǎn),可以單擊Conditions按鈕,為斷點(diǎn)設(shè)置一

6、個(gè)表達(dá)式。當(dāng)這個(gè)表達(dá)式發(fā)生改變時(shí),程序就被中斷。底下設(shè)置包括“觀察數(shù)組或者結(jié)構(gòu)的元素個(gè)數(shù)”,似乎可以設(shè)置一個(gè)指針?biāo)赶虻膬?nèi)存區(qū)的大小,但是我設(shè)置一個(gè)比較的值但是改動(dòng)范圍之外的內(nèi)存區(qū)似乎也導(dǎo)致斷點(diǎn)起效。最后一個(gè)設(shè)置可以讓程序先執(zhí)行多少次然后才到達(dá)斷點(diǎn)。數(shù)據(jù)斷點(diǎn):數(shù)據(jù)斷點(diǎn)只能在Breakpoints對(duì)話(huà)框中設(shè)置。選擇“Data”頁(yè),就顯示了設(shè)置數(shù)據(jù)斷點(diǎn)的對(duì)話(huà)框。在編輯框中輸入一個(gè)表達(dá)式,當(dāng)這個(gè)表達(dá)式的值發(fā)生變化時(shí),數(shù)據(jù)斷點(diǎn)就到達(dá)。一般情況下,這個(gè)表達(dá)式應(yīng)該由運(yùn)算符和全局變量構(gòu)成,例如:在編輯框中輸入g_bFlag這個(gè)全局變量的名字,那么當(dāng)程序中有g(shù)_bFlag=!g_b

7、Flag時(shí),程序就將停在這個(gè)語(yǔ)句處。消息斷點(diǎn):VC也支持對(duì)Windows消息進(jìn)行截獲。他有兩種方式進(jìn)行截獲:窗口消息處理函數(shù)和特定消息中斷。在Breakpoints對(duì)話(huà)框中選擇Messages頁(yè),就可以設(shè)置消息斷點(diǎn)。如果在上面那個(gè)對(duì)話(huà)框中寫(xiě)入消息處理函數(shù)的名字,那么每次消息被這個(gè)函數(shù)處理,斷點(diǎn)就到達(dá)(我覺(jué)得如果采用普通斷點(diǎn)在這個(gè)函數(shù)中截獲,效果應(yīng)該一樣)。如果在底下的下拉列表框選擇一個(gè)消息,則每次這種消息到達(dá),程序就中斷。值WatchVC支持查看變量、表達(dá)式和內(nèi)存的值。所有這些觀察都必須是在斷點(diǎn)中斷的情況下進(jìn)行。觀看變量的值最簡(jiǎn)單,當(dāng)斷點(diǎn)到達(dá)時(shí),把光標(biāo)移動(dòng)到這個(gè)

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。