




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VC程序調(diào)試2VC+編程環(huán)境 Debug(調(diào)試) 當(dāng)程序出錯(cuò)時(shí),可用調(diào)試工具發(fā)現(xiàn)錯(cuò)處的代碼,并進(jìn)行改正。 所謂調(diào)試是指: 逐條執(zhí)行程序代碼,并在執(zhí)行過(guò)程中查看變量的值。 當(dāng)發(fā)現(xiàn)變量的值并非如我們預(yù)期或程序的執(zhí)行邏輯并非我們預(yù)期時(shí),就發(fā)現(xiàn)了錯(cuò)誤,可以進(jìn)行有針對(duì)性的改正。 Visual C+的菜單欄的菜單欄-Project菜單菜單Set Active Project選項(xiàng)選項(xiàng) 設(shè)定指定的項(xiàng)目為工作區(qū)的活動(dòng)項(xiàng)目 Settings選項(xiàng)選項(xiàng) 選擇該選項(xiàng)將彈出Project Settings對(duì)話框,其中 General選項(xiàng)卡選項(xiàng)卡用來(lái)設(shè)置基礎(chǔ)類(lèi)用法和目錄。 Visual C+的菜單欄的菜單欄-Project
2、菜單菜單指出應(yīng)用程序如何與指出應(yīng)用程序如何與MFC鏈接的鏈接的指出用來(lái)建立應(yīng)用程序的指出用來(lái)建立應(yīng)用程序的位置(缺省為位置(缺省為Debug)輸出文件的位置輸出文件的位置該菜單用于編譯、建立和執(zhí)行應(yīng)用程序。Visual C+的菜單欄的菜單欄-Build菜單菜單2. Build選項(xiàng)選項(xiàng) 對(duì)最后修改過(guò)的源文件進(jìn)行編譯和鏈接1.Compile選項(xiàng)選項(xiàng) 只編譯當(dāng)前文件而不調(diào)用鏈接器或其它工具。輸出窗口將顯示編譯過(guò)程檢查出的錯(cuò)誤或警告信息,在錯(cuò)誤信息處單擊鼠標(biāo)右鍵,可以得到錯(cuò)誤代碼的位置3. Rebuild All選項(xiàng)選項(xiàng) 該選項(xiàng)允許用戶編譯所有的源文件,而不管它們何時(shí)曾經(jīng)被修改過(guò)2. Build選項(xiàng)選
3、項(xiàng) 對(duì)最后修改過(guò)的源文件進(jìn)行編譯和鏈接1.Compile選項(xiàng)選項(xiàng) 只編譯當(dāng)前文件而不調(diào)用鏈接器或其它工具。輸出窗口將顯示編譯過(guò)程檢查出的錯(cuò)誤或警告信息,在錯(cuò)誤信息處單擊鼠標(biāo)右鍵,可以得到錯(cuò)誤代碼的位置3. Rebuild All選項(xiàng)選項(xiàng) 該選項(xiàng)允許用戶編譯所有的源文件,而不管它們何時(shí)曾經(jīng)被修改過(guò)Win32 Release(發(fā)行版)、Win32 Debug(調(diào)試版)。VC提供了兩種目標(biāo)應(yīng)用程序類(lèi)型程序類(lèi)型Visual C+的菜單欄的菜單欄-Build菜單菜單Batch Build選項(xiàng)選項(xiàng) 該選項(xiàng)能單步重新建立多個(gè)工程文件,并允許用戶指定要建立的項(xiàng)目類(lèi)型程序調(diào)試?yán)硬襟E: 調(diào)試運(yùn)行 單步跟蹤 單步
4、跳進(jìn)跟蹤 觀察自動(dòng)變量 觀察其他變量 停止調(diào)試調(diào)試計(jì)算5的階乘#include int main() int i=1; i = i*2; i = i*3; i = i*4; i = i*5; printf(“value of i is: %d”,i); return 0; 1:打開(kāi)jiecheng項(xiàng)目(雙擊jiecheng.dsw文件) 2:build該項(xiàng)目,確定程序可以運(yùn)行 3:調(diào)試運(yùn)行階乘程序 4:設(shè)置斷點(diǎn) 5:再次調(diào)試運(yùn)行程序 6:使用單步執(zhí)行程序到結(jié)束1:打開(kāi)jiecheng項(xiàng)目2:Build該項(xiàng)目,確定程序可以運(yùn)行3:調(diào)試運(yùn)行階乘程序Go4:設(shè)置斷點(diǎn) 將鼠標(biāo)停留在程序的第8行,在第8
5、行的任意地方單擊鼠標(biāo)左鍵(第8行即“i = i*4;”) 在工具欄上選擇 按鈕,為第8行設(shè)置斷點(diǎn),以便讓程序在此處暫停運(yùn)行5:再次調(diào)試運(yùn)行階乘程序 注意觀察,現(xiàn)在調(diào)試運(yùn)行程序會(huì)如何?Go5:再次調(diào)試運(yùn)行階乘程序(續(xù))程序暫停之處調(diào)試(Debug)工具:控制程序前進(jìn)步伐查看程序當(dāng)前狀態(tài)6:使用單步執(zhí)行到程序結(jié)束 設(shè)置斷點(diǎn)以后,調(diào)試運(yùn)行程序時(shí),程序開(kāi)始執(zhí)行,并且運(yùn)行到斷點(diǎn)處暫停下來(lái),此時(shí)我們有機(jī)會(huì)觀察程序的運(yùn)行情況,并且診斷程序目前的狀態(tài)是否如我們所預(yù)期的那樣。 不過(guò)我們先不著急觀察程序的狀態(tài),而是來(lái)看看如何控制程序的運(yùn)行,以便在我們需要的時(shí)候讓程序暫停下來(lái),并且以我們需要的方式走走停停!6:使用
6、單步執(zhí)行到程序結(jié)束 程序停下來(lái)了,如何讓程序從暫停的地方繼續(xù)向前執(zhí)行? 方法是使用單步執(zhí)行手段(Step Over)讓程序向前走一步停止調(diào)試停止調(diào)試并重新啟動(dòng)調(diào)試單步執(zhí)行當(dāng)前位置熟悉調(diào)試工具欄和菜單(只在調(diào)試運(yùn)行時(shí)出現(xiàn))對(duì)比調(diào)試運(yùn)行時(shí)出現(xiàn)的調(diào)試菜單“Debug”和調(diào)試工具欄,根據(jù)圖標(biāo)查找對(duì)應(yīng)項(xiàng)觀察自動(dòng)變量自動(dòng)變量觀察變量的值及其隨程序運(yùn)行時(shí)的變化情況 設(shè)置斷點(diǎn),調(diào)試運(yùn)行程序,此時(shí)程序暫停在斷點(diǎn)處等待 選擇Debug菜單,找到最后一項(xiàng)“Quick Watch”并點(diǎn)擊輸入想要觀察的變量變量名變量的值點(diǎn)擊Add Watch點(diǎn)擊Add watch,看到如下畫(huà)面調(diào)試觀察每一步驟變量i的值 點(diǎn)擊單步執(zhí)行按
7、鈕或者菜單,程序則向前單獨(dú)運(yùn)行一個(gè)步驟 每向前執(zhí)行一步,就會(huì)暫停下來(lái),這樣我們就有充足的時(shí)間觀察所關(guān)心的變量名稱 觀察變量i的值的情況注意在調(diào)試過(guò)程中 斷點(diǎn)不能設(shè)置在空白行上面 添加斷點(diǎn)和刪除斷點(diǎn)的方法一樣 一個(gè)程序中可以設(shè)置多個(gè)斷點(diǎn) 按下F5鍵可以讓程序從當(dāng)前位置向前執(zhí)行,直到遇見(jiàn)下一個(gè)斷點(diǎn)或者程序結(jié)束其它一些調(diào)試技術(shù)Visual C+的菜單欄的菜單欄-Edit菜單菜單斷點(diǎn)分為:位置斷點(diǎn)位置斷點(diǎn)數(shù)據(jù)斷點(diǎn)數(shù)據(jù)斷點(diǎn)消息斷點(diǎn)消息斷點(diǎn)用來(lái)用來(lái)設(shè)置設(shè)置刪除刪除和和查看查看斷點(diǎn)斷點(diǎn) Breakpoints選項(xiàng)選項(xiàng)Visual C+的菜單欄的菜單欄-Edit菜單菜單位置斷點(diǎn)位置斷點(diǎn)通常在通常在源代碼源代碼
8、的指定行的指定行、函數(shù)的開(kāi)始函數(shù)的開(kāi)始或或指定的內(nèi)存地址處指定的內(nèi)存地址處設(shè)設(shè)置置,當(dāng)程序執(zhí)行到指定,當(dāng)程序執(zhí)行到指定位置時(shí),位置斷點(diǎn)將中位置時(shí),位置斷點(diǎn)將中斷程序的執(zhí)行斷程序的執(zhí)行在位置斷點(diǎn)中還可以設(shè)置斷在位置斷點(diǎn)中還可以設(shè)置斷點(diǎn)條件,此時(shí)必須先指定位點(diǎn)條件,此時(shí)必須先指定位置,然后再設(shè)置條件斷點(diǎn)置,然后再設(shè)置條件斷點(diǎn)數(shù)據(jù)斷點(diǎn)數(shù)據(jù)斷點(diǎn)是在是在變量變量或或表達(dá)式表達(dá)式上設(shè)置,上設(shè)置,當(dāng)當(dāng)變量變量或或表達(dá)式表達(dá)式的的值值改變改變時(shí),數(shù)據(jù)斷時(shí),數(shù)據(jù)斷點(diǎn)將中斷程序的執(zhí)行點(diǎn)將中斷程序的執(zhí)行消息斷點(diǎn)消息斷點(diǎn)是在窗口是在窗口函數(shù)函數(shù)WndProc上設(shè)上設(shè)置,當(dāng)接收到指定置,當(dāng)接收到指定的消息時(shí),消息斷的消
9、息時(shí),消息斷點(diǎn)將中斷程序的執(zhí)行點(diǎn)將中斷程序的執(zhí)行位置斷點(diǎn)位置斷點(diǎn):可以為斷點(diǎn)設(shè)置一個(gè)條件,有兩種類(lèi)型:1.一種是根據(jù)預(yù)置的條件來(lái)設(shè)置2.另外一種是根據(jù)觸發(fā)的次數(shù)來(lái)設(shè)置根據(jù)預(yù)置的條件來(lái)設(shè)置 可以單擊Conditions按鈕,為斷點(diǎn)設(shè)置一個(gè)表達(dá)式。當(dāng)這個(gè)表達(dá)式為真時(shí),程序就 被中斷。根據(jù)觸發(fā)的次數(shù)來(lái)設(shè)置 可以單擊Conditions按鈕,為斷點(diǎn)設(shè)置觸發(fā)的次數(shù)。當(dāng)達(dá)到觸發(fā)的次數(shù)時(shí),程序就 被中斷。數(shù)據(jù)斷點(diǎn) 數(shù)據(jù)斷點(diǎn):數(shù)據(jù)斷點(diǎn)只能在Breakpoints對(duì)話框中設(shè)置。選擇“Data”頁(yè),就顯示了設(shè)置數(shù)據(jù)斷點(diǎn)的對(duì)話框。在編輯框中輸入一個(gè)表達(dá)式,當(dāng)這個(gè) 表達(dá)式的值發(fā)生變化時(shí),數(shù)據(jù)斷點(diǎn)就到達(dá)。一般情況下,這
10、個(gè)表達(dá)式應(yīng)該由運(yùn)算符和全局變量構(gòu)成,例如:在編輯框中輸入 g_bFlag這個(gè)全局變量的名字,那么當(dāng)程序中有g(shù)_bFlag= !g_bFlag時(shí),程序就將停在這個(gè)語(yǔ)句處。 消息斷點(diǎn) 消息斷點(diǎn):VC也支持對(duì)Windows消息進(jìn)行截獲。他有兩種方式進(jìn)行截獲:窗口消息處理函數(shù)和特定消息中斷。 Memory 由于指針指向的數(shù)組,Watch只能顯示第一個(gè)元素的值。為了顯示數(shù)組的后續(xù)內(nèi)容,或者要顯示一片內(nèi)存的內(nèi)容,可以使用memory功能。在 Debug工具條上點(diǎn)memory按鈕,就彈出一個(gè)對(duì)話框,在其中輸入地址,就可以顯示該地址指向的內(nèi)存的內(nèi)容。 VariblesDebug工具條上的Varibles按鈕彈出一個(gè)框,顯示所有當(dāng)前執(zhí)行上下文中可見(jiàn)的變量的值。特別是當(dāng)前指令涉及的變量,以紅色顯示。寄存器 Debug工具條上的Reigsters按鈕彈出一個(gè)框,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園大班防洪防汛安全教育教案
- 交通安全教育宣傳片
- 《AI進(jìn)修醫(yī)生》課件資料
- 《網(wǎng)絡(luò)協(xié)議與互聯(lián)互通》課件
- 高級(jí)茶藝師題庫(kù)(含參考答案解析)
- 2025年2月1+X 網(wǎng)店運(yùn)營(yíng)推廣職業(yè)技能等級(jí)標(biāo)準(zhǔn)(中級(jí))模擬試題(含參考答案解析)
- 2024年2月安全生產(chǎn)應(yīng)知應(yīng)會(huì)知識(shí)采煤??荚囶}與參考答案解析
- 奶茶店產(chǎn)品服務(wù)設(shè)計(jì)
- 真空泵在制冷與空調(diào)行業(yè)中的應(yīng)用考核試卷
- 舞臺(tái)燈光設(shè)計(jì)在實(shí)景演出中的應(yīng)用考核試卷
- 律師評(píng)析:實(shí)際施工人訴訟案例
- 武術(shù)基本功五步拳 教案6篇
- 詳解 強(qiáng)基計(jì)劃
- 餐飲場(chǎng)所消防安全培訓(xùn)
- 2023年四川省雅安市長(zhǎng)江造林局蜀西分局招聘4人(共500題)筆試必備質(zhì)量檢測(cè)、歷年高頻考點(diǎn)模擬試題含答案解析
- 鄉(xiāng)村衛(wèi)生室服務(wù)一體化管理工作制度
- 醫(yī)學(xué)英語(yǔ)術(shù)語(yǔ)解密-福建醫(yī)科大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 醫(yī)用耗材采購(gòu)簡(jiǎn)易流程圖
- 第六章電力系統(tǒng)自動(dòng)低頻減載裝置
- 新能源設(shè)計(jì)專(zhuān)業(yè)考試題庫(kù)匯總(附答案)
- 微生物學(xué)(細(xì)胞型)知到章節(jié)答案智慧樹(shù)2023年哈爾濱師范大學(xué)
評(píng)論
0/150
提交評(píng)論