《程序調(diào)試的方法》教學(xué)課件2_第1頁
《程序調(diào)試的方法》教學(xué)課件2_第2頁
《程序調(diào)試的方法》教學(xué)課件2_第3頁
《程序調(diào)試的方法》教學(xué)課件2_第4頁
《程序調(diào)試的方法》教學(xué)課件2_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

程序調(diào)試的方法2024/8/19VisualBasicProgramming1程序調(diào)試的基本概念

在程序設(shè)計(jì)的過程中,不可避免地會(huì)發(fā)生這樣那樣的錯(cuò)誤。程序調(diào)試就是對(duì)程序進(jìn)行測(cè)試,查找程序中隱藏的錯(cuò)誤并將這些錯(cuò)誤修正或排除。VB提供了很強(qiáng)的程序調(diào)試的手段。

語法錯(cuò)誤是指由于違反了語言有關(guān)語句形式或使用規(guī)則而產(chǎn)生的錯(cuò)誤。例如:語句定義符拼錯(cuò)、內(nèi)置常量名拼錯(cuò)、變量名定義錯(cuò)、沒有正確地使用標(biāo)點(diǎn)符號(hào)、分支結(jié)構(gòu)或循環(huán)結(jié)構(gòu)語句的結(jié)構(gòu)不完整或不匹配等。

錯(cuò)誤類型

在VB程序設(shè)計(jì)中所產(chǎn)生的錯(cuò)誤通??煞肿魅悾赫Z法錯(cuò)誤、運(yùn)行錯(cuò)誤、邏輯錯(cuò)誤語法錯(cuò)誤VB提供了一個(gè)自動(dòng)語法檢查選項(xiàng),如果設(shè)定本選項(xiàng),就能

在輸入代碼時(shí)自動(dòng)檢測(cè)和改正語法錯(cuò)誤。屬于語句使用形式的語法錯(cuò)誤,在一行代碼輸入完,準(zhǔn)備輸入下一行時(shí),系統(tǒng)即可檢測(cè)到,并將錯(cuò)誤加亮顯示,并顯示一個(gè)消息框,在消息框中對(duì)錯(cuò)誤作出解釋以幫助編程者改正錯(cuò)誤;而違反語法規(guī)則而產(chǎn)生的錯(cuò)誤,則會(huì)在運(yùn)行程序代碼時(shí),被快速檢測(cè),且也會(huì)立即給出相關(guān)的出錯(cuò)信息。

語法錯(cuò)誤常見的編譯錯(cuò)誤有:(1)標(biāo)點(diǎn)符號(hào)錯(cuò)(程序中只能使用西文標(biāo)點(diǎn));關(guān)鍵字輸入錯(cuò)(例:Dim寫成Din);一行語句沒有寫完整等(2)對(duì)象名稱(Name屬性)寫錯(cuò);(3)對(duì)象的屬性名、方法名,內(nèi)部函數(shù)名寫錯(cuò);(4)變量未定義或變量名寫錯(cuò)(可在通用聲明段加OptionExplicit,采用變量顯式聲明);常見的編譯錯(cuò)誤有:(5)塊If沒有對(duì)應(yīng)的EndIf語句;For循環(huán)沒有對(duì)應(yīng)的Next語句;Do循環(huán)沒有對(duì)應(yīng)的Loop語句等,這類錯(cuò)誤當(dāng)VB開始運(yùn)行時(shí)提示出錯(cuò)信息,且將出錯(cuò)位置用反色顯示運(yùn)行錯(cuò)誤運(yùn)行錯(cuò)誤是由于試圖執(zhí)行一個(gè)不可進(jìn)行的操作而引起的。比如使用一個(gè)不存在的對(duì)象或使用一個(gè)某些關(guān)鍵屬性沒有正確設(shè)置的對(duì)象等。

對(duì)于運(yùn)行錯(cuò)誤,系統(tǒng)也會(huì)在檢測(cè)到后,給出相應(yīng)的錯(cuò)誤信息,并中止程序的運(yùn)行。

VB在運(yùn)行代碼時(shí)指令代碼執(zhí)行了一非法操作引起的誤指。例如,除法時(shí)分母為零,被操作的驅(qū)動(dòng)器未準(zhǔn)備好或磁盤讀寫有錯(cuò)?;驍?shù)組下標(biāo)超界、數(shù)據(jù)溢出、類型不匹配、試圖打開一個(gè)不存在的文件。運(yùn)行出錯(cuò)也將彈出一個(gè)子窗口,提示出錯(cuò)信息。邏輯錯(cuò)誤邏輯錯(cuò)誤是由于編寫的程序代碼,不能實(shí)現(xiàn)預(yù)定的處理功

能要求而產(chǎn)生的錯(cuò)誤。要實(shí)現(xiàn)既定的數(shù)據(jù)處理功能,必須依據(jù)一定的“算法”,即由算法規(guī)定的處理方法與步驟。如果所編寫的程序代碼,違反了算法,盡管沒有任何語法錯(cuò)誤,也沒有執(zhí)行任何非法操作,得到的結(jié)果卻是錯(cuò)誤的。

邏輯錯(cuò)誤也有可能引起運(yùn)行錯(cuò)誤。

對(duì)于邏輯錯(cuò)誤,系統(tǒng)無法自動(dòng)檢測(cè)。只能由用戶通過測(cè)試,來驗(yàn)證結(jié)果的正確性。如果結(jié)果有誤,則應(yīng)檢查是否有邏輯錯(cuò)誤存在,并加以排除。

設(shè)置自動(dòng)語法檢查設(shè)置自動(dòng)語法檢查的方法是:

在VB集成開發(fā)環(huán)境中,打開“工具”菜單,再單擊“選項(xiàng)”命令,并在打開的對(duì)話框中選擇“編輯器”標(biāo)簽(右圖),在“代碼設(shè)置”欄中選中“自動(dòng)語法檢測(cè)”即可。

VB調(diào)試工具VB提供了一個(gè)專用于程序調(diào)試的工具欄。如果該工具欄不可見,則只要在任何工具欄上單擊鼠標(biāo)右鍵,在彈出式菜單中單擊“調(diào)試”即可。

下圖是調(diào)試工具欄中的調(diào)試工具按鈕圖??衫冒粹o運(yùn)行要測(cè)試的程序、中斷程序運(yùn)行、在程序中設(shè)置斷點(diǎn)、監(jiān)視變量(取值)、單步調(diào)試、過程跟蹤等,以查找并排除代碼中存在的邏輯錯(cuò)誤。各個(gè)按鈕的功能圖標(biāo)按鈕名功能啟動(dòng)從啟動(dòng)窗體開始,運(yùn)行程序,所有變量初始化中斷中斷程序運(yùn)行,并使其進(jìn)入中斷模式結(jié)束停止程序運(yùn)行,并返回設(shè)計(jì)態(tài)切換斷點(diǎn)創(chuàng)建或刪除斷點(diǎn),斷點(diǎn)是程序中VB停止執(zhí)行的地方逐語句(調(diào)試)執(zhí)行程序的下一行代碼,單步執(zhí)行后續(xù)的每個(gè)代碼行,如果調(diào)用了其他過程,則單步執(zhí)行該過程的每一行逐過程(調(diào)試)執(zhí)行程序的下一行代碼,單步執(zhí)行后續(xù)的每個(gè)代碼行,如果調(diào)用了其他過程,則完整執(zhí)行該過程,然后繼續(xù)單步執(zhí)行跳出執(zhí)行完當(dāng)前過程的所有余下代碼后,在調(diào)用本過程的代碼的下一行中斷執(zhí)行本地窗口顯示局部變量的當(dāng)前值立即窗口顯示立即窗口,在立即窗口可在中斷模式下執(zhí)行代碼或查詢變量值監(jiān)視窗口顯示監(jiān)視窗口,在監(jiān)視窗口可顯示選定的表達(dá)式的值快速監(jiān)視在中斷模式下,可顯示光標(biāo)所在位置的表達(dá)式的當(dāng)前值,該表達(dá)式還可快速添加到監(jiān)視窗口調(diào)用堆棧(列表)可彈出一個(gè)對(duì)話框顯示所有已被調(diào)用且尚未結(jié)束的過程中斷狀態(tài)的進(jìn)入與退出程序在執(zhí)行的中途被停止,稱為“中斷”。進(jìn)入中斷狀態(tài)一般有以下四種方式:1)程序運(yùn)行中由于發(fā)生運(yùn)行錯(cuò)誤而進(jìn)入中斷狀態(tài);2)程序在運(yùn)行中因?yàn)橛脩魡螕鬋trl+Break鍵或使用“Run”(運(yùn)行)菜單中的“中斷”命令而進(jìn)入中斷狀態(tài);中斷狀態(tài)的進(jìn)入與退出程序在執(zhí)行的中途被停止,稱為“中斷”。進(jìn)入中斷狀態(tài)一般有以下四種方式:3)當(dāng)程序執(zhí)行到斷點(diǎn)處時(shí)而進(jìn)入中斷狀態(tài);4)在采用單步調(diào)試方式每運(yùn)行一個(gè)可執(zhí)行代碼行后,即進(jìn)入中斷狀態(tài)。通過使用“運(yùn)行”菜單中的“繼續(xù)”命令、“結(jié)束”命令或“重新啟動(dòng)”命令,可退出中斷狀態(tài)。斷點(diǎn)設(shè)置和取消“斷點(diǎn)”通常按排在程序代碼中能反映程序執(zhí)行狀況的部位。VB程序一般都由若干個(gè)過程組成。在某些過程中設(shè)置斷點(diǎn),就可對(duì)相關(guān)的過程進(jìn)行跟蹤檢查,從而保證程序每個(gè)組成部分的正確性。斷點(diǎn)設(shè)置和取消打開代碼窗口,將光標(biāo)指向作為斷點(diǎn)的代碼行,然后使用“調(diào)試”菜單中的“切換斷點(diǎn)”命令或直接單擊調(diào)試工具欄上的“切換斷點(diǎn)”按鈕即可。被設(shè)置為斷點(diǎn)的代碼行將加粗反白顯示。如圖。斷點(diǎn)設(shè)置和取消取消斷點(diǎn)的方法,也是將光標(biāo)指向定為斷點(diǎn)的代碼行,再使用和設(shè)置斷點(diǎn)同樣的操作。如果要取消程序中所有的斷點(diǎn),則可使用“調(diào)試”菜單中的“清除所有斷點(diǎn)”命令。單步調(diào)試

單步調(diào)試即逐個(gè)語句或逐個(gè)過程的執(zhí)行程序,每執(zhí)行完一個(gè)語句或一個(gè)過程,就發(fā)生中斷,因此可逐個(gè)語句或逐個(gè)過程地檢查每個(gè)語句的執(zhí)行狀況或每個(gè)過程的執(zhí)行結(jié)果。

單步語句調(diào)試使用“調(diào)試”菜單中的“逐語句”命令或單擊工具欄上的“逐語句”調(diào)試按鈕,即可進(jìn)行單步調(diào)試。也可采用快捷鍵F8進(jìn)行操作。每按一次F8鍵,程序就執(zhí)行一個(gè)語句,在代碼窗口,標(biāo)

志下一個(gè)要執(zhí)行的語

句的箭頭和彩色框也

隨之移向下一語句,

如圖。

單步語句調(diào)試每執(zhí)行一個(gè)代碼行,系統(tǒng)就進(jìn)入中斷狀態(tài),即可通過立即窗口檢查語句的執(zhí)行情況。如圖,是在單步調(diào)試過程中使用立即窗口的情況。

當(dāng)單步語句調(diào)試要執(zhí)行的下一個(gè)語句是另一個(gè)過程時(shí),系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)向該

過程去執(zhí)行。

單步過程調(diào)試當(dāng)可以確認(rèn)某些過程不存在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論