常見錯(cuò)誤類型和程序調(diào)試方法演示_第1頁(yè)
常見錯(cuò)誤類型和程序調(diào)試方法演示_第2頁(yè)
常見錯(cuò)誤類型和程序調(diào)試方法演示_第3頁(yè)
常見錯(cuò)誤類型和程序調(diào)試方法演示_第4頁(yè)
常見錯(cuò)誤類型和程序調(diào)試方法演示_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

(優(yōu)選)常見錯(cuò)誤類型和程序調(diào)試方法當(dāng)前1頁(yè),總共23頁(yè)。10.1

常見錯(cuò)誤類型程序中的錯(cuò)誤大體可分為三類:即編譯錯(cuò)誤、實(shí)時(shí)錯(cuò)誤和邏輯錯(cuò)誤。編譯錯(cuò)誤多數(shù)是因?yàn)椴徽_的代碼產(chǎn)生的,即在編寫程序時(shí)書寫了錯(cuò)誤的語(yǔ)法,從而導(dǎo)致VB編譯器無(wú)法正確解釋源代碼而產(chǎn)生的錯(cuò)誤,因此也稱為語(yǔ)法錯(cuò)誤。實(shí)時(shí)錯(cuò)誤是指應(yīng)用程序運(yùn)行期間,一條語(yǔ)句試圖執(zhí)行一條不可能執(zhí)行的操作而產(chǎn)生的錯(cuò)誤,也稱為運(yùn)行時(shí)錯(cuò)誤。邏輯錯(cuò)誤是指程序的運(yùn)行結(jié)果和程序員的設(shè)想有出入時(shí)產(chǎn)生的錯(cuò)誤。這類錯(cuò)誤并不直接導(dǎo)致程序在編譯期間和運(yùn)行期間出現(xiàn)錯(cuò)誤,較難發(fā)現(xiàn)。返回當(dāng)前2頁(yè),總共23頁(yè)。10.2

程序中邏輯錯(cuò)誤的特點(diǎn)邏輯錯(cuò)誤的特點(diǎn)是源程序在語(yǔ)法上沒有問題,也沒有出現(xiàn)無(wú)效操作等類型的運(yùn)行錯(cuò)誤,但是程序未按預(yù)期方式執(zhí)行,產(chǎn)生了不正確的運(yùn)行結(jié)果。邏輯錯(cuò)誤只能通過(guò)對(duì)程序運(yùn)行結(jié)果進(jìn)行分析才能被發(fā)現(xiàn)。返回當(dāng)前3頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法調(diào)試程序是一件復(fù)雜的工程,不但要求程序員對(duì)系統(tǒng)設(shè)計(jì)結(jié)果非常熟悉,思路清晰,更需要不斷地在實(shí)踐中積累經(jīng)驗(yàn)。這里程序調(diào)試的基本方法包括:中斷模式調(diào)試、調(diào)試工具調(diào)試和編寫錯(cuò)誤處理程序。重點(diǎn)介紹前兩種方法。1.中斷模式在VB集成開發(fā)環(huán)境中,程序有設(shè)計(jì)、運(yùn)行和中斷三種模式VB的標(biāo)題欄會(huì)列出當(dāng)前的模式。在設(shè)計(jì)模式下,程序員可改變應(yīng)用程序的設(shè)計(jì)和代碼,但所作不能改變對(duì)應(yīng)用程序運(yùn)行的影響;在運(yùn)行模式下,程序員可以監(jiān)視應(yīng)用程序的行為,但不能直接修改代碼;中斷模式可以暫停應(yīng)用程序的執(zhí)行,下一頁(yè)返回當(dāng)前4頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法并允許程序員在任何時(shí)候快速查看應(yīng)用程序的狀態(tài),顯示變量和屬性的值,方便程序員發(fā)現(xiàn)程序中存在的問題。當(dāng)一個(gè)應(yīng)用程序處于中斷模式時(shí),可以完成下列工作:(1)修改應(yīng)用程序中的代碼。(2)觀察應(yīng)用程序的接口條件。(3)確定已被調(diào)用的活動(dòng)過(guò)程。(4)監(jiān)視變量、屬性的值。(5)查看或控制應(yīng)用程序運(yùn)行的下一個(gè)語(yǔ)句。(6)立即運(yùn)行VB語(yǔ)句。(7)手工控制應(yīng)用程序的運(yùn)行。下一頁(yè)返回上一頁(yè)當(dāng)前5頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法在運(yùn)行應(yīng)用程序時(shí)進(jìn)入中斷模式的方法如下:(1)按Ctrl+Break鍵。(2)選擇“運(yùn)行”|“中斷”命令。(3)單擊標(biāo)準(zhǔn)工具欄上的“中斷”按鈕。在下列情況下自動(dòng)進(jìn)入中斷模式:(1)語(yǔ)句中產(chǎn)生一個(gè)運(yùn)行錯(cuò)誤(“選項(xiàng)”對(duì)話框“通用”選項(xiàng)卡上的“發(fā)生錯(cuò)誤時(shí)中斷”選項(xiàng)處于選中狀態(tài))。(2)“添加監(jiān)視”對(duì)話框定義的中斷表達(dá)式發(fā)生改變或變成“真”。(3)執(zhí)行含有斷點(diǎn)的行。(4)執(zhí)行到一個(gè)Stop語(yǔ)句。下一頁(yè)返回上一頁(yè)當(dāng)前6頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法2.設(shè)置和清除斷點(diǎn)設(shè)置斷點(diǎn)可以使程序在指定的位置停止運(yùn)行,并且不運(yùn)行包含斷點(diǎn)的語(yǔ)句。把應(yīng)用程序切換到中斷狀態(tài),便于用戶查看代碼或檢查變量或?qū)傩缘闹怠TO(shè)置斷點(diǎn)的方法:(1)選擇“調(diào)試”|“切換斷點(diǎn)”命令。(2)按功能鍵F9。(3)在需要設(shè)置斷點(diǎn)的代碼行上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“切換”|“斷點(diǎn)”命令。下一頁(yè)返回上一頁(yè)當(dāng)前7頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法(4)單擊代碼編輯器中該行代碼左邊的“頁(yè)邊提示器”欄。要清除已經(jīng)設(shè)置的某個(gè)斷點(diǎn),可在斷點(diǎn)位置執(zhí)行以上同樣的操作,若要清除所有斷點(diǎn)則選擇“調(diào)試”|“菜單中選擇清除所有斷點(diǎn)”命令。3.Stop語(yǔ)句的使用在一個(gè)過(guò)程中放置一個(gè)Shop語(yǔ)句是設(shè)置斷點(diǎn)的備用方法。一旦VB遇到一個(gè)Shop語(yǔ)句,它會(huì)暫停程序的執(zhí)行并切換到中斷模式,如要繼續(xù)應(yīng)用程序的運(yùn)行,可選擇“運(yùn)行”|“繼續(xù)”命令。4.調(diào)試工具欄VB集成開發(fā)環(huán)境專門提供了一個(gè)用于程序調(diào)試的工具欄。下一頁(yè)返回上一頁(yè)當(dāng)前8頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法在設(shè)計(jì)或中斷模式下,將鼠標(biāo)移動(dòng)到“工具”菜單上右擊,在隨后出現(xiàn)的快捷菜單上選擇“調(diào)試”命令,出現(xiàn)如圖10-1所示的“調(diào)試”工具欄。下面重點(diǎn)介紹與程序調(diào)試有關(guān)的幾個(gè)工具按鈕的作用。(1)切換斷點(diǎn)在程序代碼中設(shè)置或取消斷點(diǎn),程序執(zhí)行到該語(yǔ)句時(shí)停下來(lái)。注意:設(shè)置斷點(diǎn)的方法是在代碼窗口中選擇一條語(yǔ)句,單擊“切換斷點(diǎn)”按鈕或按F9鍵,該語(yǔ)句變?yōu)榘导t色,即設(shè)置成功,程序中允許設(shè)置多個(gè)斷點(diǎn)。再次用同樣的方法便取消斷點(diǎn)。按Ctrl+Shift+F9組合鍵清除所有斷點(diǎn)。下一頁(yè)返回上一頁(yè)當(dāng)前9頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法(2)逐語(yǔ)句與立即窗口逐語(yǔ)句是指程序?qū)⒅饌€(gè)語(yǔ)句執(zhí)行,一句一停。在逐語(yǔ)句執(zhí)行時(shí),用戶會(huì)看到正在執(zhí)行的語(yǔ)句為黃色,同時(shí)出現(xiàn)一個(gè)“立即”窗口,用戶可以在“立即”窗口使用Print方法或問號(hào)(?)查看變量或表達(dá)式的值,如圖10-2所示。(3)逐過(guò)程每單擊一次“逐過(guò)程”按鈕將執(zhí)行一個(gè)過(guò)程或函數(shù),同時(shí)也會(huì)出現(xiàn)一個(gè)“立即”窗口。用戶可以在“立即”窗口使用Print方法或問號(hào)(?)查看變量或表達(dá)式的值。和逐語(yǔ)句相比,二者的不同之處在于逐過(guò)程不跟蹤到過(guò)程或函數(shù)內(nèi)音f。下一頁(yè)返回上一頁(yè)當(dāng)前10頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法(4)跳出單擊“跳出”按鈕,跳出當(dāng)前過(guò)程或函數(shù)。(5)本地窗口用于顯示當(dāng)前過(guò)程中所有變量的值。這些變量只是當(dāng)前過(guò)程中定義的局部變量,不包含全局變量。當(dāng)程序的執(zhí)行從一個(gè)過(guò)程轉(zhuǎn)向另一個(gè)過(guò)程時(shí),本地窗口的內(nèi)容也會(huì)發(fā)生變化。單擊“本地窗口”按鈕,再逐語(yǔ)句或逐過(guò)程執(zhí)行程序,就可以在“本地”窗口上看到正在執(zhí)行哪個(gè)過(guò)程以及該過(guò)程變量的當(dāng)前值和類型,如圖10-3所示。下一頁(yè)返回上一頁(yè)當(dāng)前11頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法(6)監(jiān)視窗口用于顯示某些表達(dá)式的值。這可幫助用戶隨時(shí)觀察某些表達(dá)式或變量的值,以確定這樣的結(jié)果是否正確。需要在監(jiān)視窗口跟蹤觀察的表達(dá)式或變量,必須選擇“調(diào)試”|“添加監(jiān)視”命令來(lái)添加。圖10-4所示是“添加監(jiān)視”對(duì)話框,在輸入框中輸入需要監(jiān)視的表達(dá)式或變量。已在監(jiān)視窗口中的表達(dá)式或變量可以編輯,例如刪除、改變表達(dá)式或變量的監(jiān)視范圍和類型。選擇“調(diào)試”“編輯監(jiān)視(E)”命令,彈出“編輯監(jiān)視”對(duì)話框,它與圖10-4基本相似。不同之處在于多了一個(gè)“刪除”按鈕。下一頁(yè)返回上一頁(yè)當(dāng)前12頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法(7)快速監(jiān)視使用快速監(jiān)視可以在斷點(diǎn)執(zhí)行方式下檢查沒有添加到監(jiān)視窗口中的表達(dá)式、變量或?qū)ο髮傩缘闹怠J褂每焖俦O(jiān)視的步驟是:①在代碼窗口中選擇要查看的變量或表達(dá)式。②單擊“快速監(jiān)視”按鈕,即可彈出“快速監(jiān)視”對(duì)話框,如圖10-5所示,是快速監(jiān)視某過(guò)程中“yearmod12”表達(dá)式的當(dāng)前值。在“快速監(jiān)視”對(duì)話框中,單擊“添加(A)”按鈕,可以把當(dāng)前選中的表達(dá)式或變量添加到監(jiān)視窗口中。如果用戶沒有在代碼窗口選中要查看的表達(dá)式或變量就單擊“快速監(jiān)視”按鈕,系統(tǒng)會(huì)彈出一個(gè)警告框,提示沒有選擇監(jiān)視對(duì)象。下一頁(yè)返回上一頁(yè)當(dāng)前13頁(yè),總共23頁(yè)。10.3

程序調(diào)試方法(8)調(diào)用堆棧在“調(diào)用堆棧”對(duì)話框顯示一個(gè)調(diào)用所有活動(dòng)過(guò)程的列表。活動(dòng)過(guò)程是指那些在應(yīng)用程序中已經(jīng)啟動(dòng)但還沒有運(yùn)行結(jié)束的過(guò)程。注意:“調(diào)用堆棧”只能在斷點(diǎn)執(zhí)行方式下使用。它的圖標(biāo)按鈕通常是無(wú)效的(灰色),只有當(dāng)執(zhí)行到斷點(diǎn)時(shí)該按鈕才有效,單擊它即可彈出“調(diào)用堆棧”對(duì)話框。例如,在某一應(yīng)用程序FormClick()的過(guò)程中調(diào)用了通用sum過(guò)程,當(dāng)程序運(yùn)行到斷點(diǎn)時(shí),單擊“調(diào)用堆?!卑粹o,即彈出“調(diào)用堆?!睂?duì)話框,如圖10-6所示。下一頁(yè)返回上一頁(yè)當(dāng)前14頁(yè),總共23頁(yè)。10.4

常見錯(cuò)誤信息表常見錯(cuò)誤信息表如表10-1所示。返回當(dāng)前15頁(yè),總共23頁(yè)。圖10-1調(diào)試工具返回當(dāng)前16頁(yè),總共23頁(yè)。圖10-2逐語(yǔ)句執(zhí)行與“立即”窗口返回當(dāng)前17頁(yè),總共23頁(yè)。圖10-3本地窗口

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論