《Delphi程序設計基礎教程》課件第9章 調試技術_第1頁
《Delphi程序設計基礎教程》課件第9章 調試技術_第2頁
《Delphi程序設計基礎教程》課件第9章 調試技術_第3頁
《Delphi程序設計基礎教程》課件第9章 調試技術_第4頁
《Delphi程序設計基礎教程》課件第9章 調試技術_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

12十二月2023DELPHI程序設計基礎教程第九章調試技術本章學習導讀9.1編譯調試概述9.2程序錯誤分類9.3編譯器的設置9.4程序的調試本章小結12十二月2023DELPHI程序設計基礎教程本章學習導讀本章首先介紹在程序編寫過程中可能出現(xiàn)的錯誤,然后介紹如何使用Delphi內嵌的調試工具來檢查已編寫完成的源程序。讓讀者掌握通過Delphi對程序進行基本測試的方法。12十二月2023DELPHI程序設計基礎教程9.1編譯調試概述程序中的錯誤基本可以分為三類:編譯錯誤:一般是語法錯誤。運行錯誤:程序能正常編譯但在運行時出錯。邏輯錯誤:邏輯錯誤是指程序設計和實現(xiàn)上的錯誤。程序語句是合法的,并順利執(zhí)行了,但執(zhí)行的結果卻不是所希望的。程序調試的主要內容可以包括如下幾個方面:控制程序的執(zhí)行斷點的數(shù)用監(jiān)視和檢查數(shù)據(jù)的值12十二月2023DELPHI程序設計基礎教程9.2程序錯誤分類9.2.1編譯錯誤9.2.2運行錯誤9.2.3邏輯錯誤12十二月2023DELPHI程序設計基礎教程9.2.1編譯錯誤編譯錯誤的產生是Delphi將源程序編譯稱單元目標文件.dcu是所產生的錯誤。在編譯錯誤中最常見的就是程序語法錯誤,如源程序中出現(xiàn)了未經(jīng)定義的非法字符,語句結尾缺少“;”等。當語法出現(xiàn)錯誤時,Delphi自動裝入錯誤的文件,并將光標定位在代碼編輯器中的錯誤處,同時在代碼編輯器的狀態(tài)欄顯示出錯信息,包括出錯的語句行號以及錯誤類型等信息。語法錯誤往往是由于程序編寫不規(guī)范、疏忽所引起的,如中文輸入與英文輸入狀態(tài)切換不及時等。良好的編程習慣能減少類似錯誤的發(fā)生。語法錯誤相對來說容易識別,根據(jù)出錯信息逐條語句更正錯誤即可順利通過編譯。12十二月2023DELPHI程序設計基礎教程9.2.2運行錯誤運行錯誤是指在編譯通過后,運行程序時產生的錯誤。這類錯誤往往是由指令代碼執(zhí)行了一非法操作引起的。如:定義的數(shù)組在運行時越界、試圖打開一個不存在的文件產生I/O錯誤等。運行錯誤一旦發(fā)生,Delphi會終止程序運行。12十二月2023DELPHI程序設計基礎教程9.2.3邏輯錯誤邏輯錯誤是程序邏輯關系上存在的錯誤,也是經(jīng)常出現(xiàn)的錯誤類型。這類錯誤不影響程序的正常編譯和運行,更不會出現(xiàn)錯誤的提示或警告對話框,但程序運行的結果卻沒有實現(xiàn)設計的功能。12十二月2023DELPHI程序設計基礎教程9.3編譯器的設置包含調試信息執(zhí)行菜單“工程|選項”轉換到“Compiler”選項卡,如圖9-4所示。

圖9-4設置編譯參數(shù)12十二月2023DELPHI程序設計基礎教程9.3編譯器的設置Debugging選項組是編譯過程控制調試信息的選項。要使得集成調試器調試應用程序,必須選中該組中的選項。啟動“Debuginformation”復選框,則在編譯文件中包含調試信息;啟用“Localsymbols”復選框,則在編譯文件中包含有源文件符號表。啟用Debugging選項組后,編譯后生成的執(zhí)行文件長度增大。如果應用程序交付給用戶時,建議將該組下的選項除去,然后使用菜單“工程|編譯”命令重新編譯,以減小應用程序的長度,提高執(zhí)行效率。12十二月2023DELPHI程序設計基礎教程9.3編譯器的設置允許完整模式調試執(zhí)行菜單“工具|調試器選項”命令,在“General”選項卡上,勾選底部的“IntegratedDebugging”復選框(默認狀態(tài)下,該項是被選中的)。12十二月2023DELPHI程序設計基礎教程9.4程序的調試9.4.1斷點的設置和使用9.4.2單步執(zhí)行9.4.3查看變量9.4.4其他調試方法與技巧12十二月2023DELPHI程序設計基礎教程9.4.1斷點的設置和使用斷點指的是在程序代碼的某一行上設一個標記,程序執(zhí)行到標記處將暫停,由調試器控制程序的運行。通常把斷點設置在懷疑會產生錯誤的代碼前,或直接設置在問題代碼上。在遇到斷點之前,程序正常運行,到斷點后程序暫停,然后使用單步或跟蹤等方式執(zhí)行程序,以發(fā)現(xiàn)錯誤。12十二月2023DELPHI程序設計基礎教程9.4.1斷點的設置和使用設置斷點斷點的設施十分靈活,既可以在程序設計期設置斷點,還可以在調試期添加和刪除斷點。設置斷點有以下幾種方法:(1)單擊代碼某一行最左端;(2)把光標定位在需設置斷點的代碼行上,按F5鍵;(3)執(zhí)行菜單“運行|添加斷點|源中斷”命令,在對話框中設定添加斷點的代碼行號;(4)右擊代碼行,在彈出的快捷菜單中執(zhí)行“Debug|ToggleBreakpoint”命令。需要注意的是,斷點必須設置在可執(zhí)行的代碼行上。如果將斷點設置在空行、注釋行或其他不能執(zhí)行的代碼行上,調試器將認為斷點無效,12十二月2023DELPHI程序設計基礎教程9.4.1斷點的設置和使用查找斷點如果在代碼上設置了多個斷點,而且斷點不在當前編輯窗口,那么可以在斷點列表中尋找斷點,并在源代碼中定位。執(zhí)行菜單“查看|調試窗口|斷點”命令或者直接使用快捷鍵Ctrl+Alt+B來打開斷點列表,12十二月2023DELPHI程序設計基礎教程9.4.1斷點的設置和使用刪除斷點刪除某個斷點可直接單擊斷點所在的代碼行的左端紅點。如果要刪除所有斷點,可以在斷點列表窗口空白處右擊,在彈出菜單中執(zhí)行“DeleteAll”命令即可。12十二月2023DELPHI程序設計基礎教程9.4.1斷點的設置和使用斷點的屏蔽與激活在有些情況下,在設置斷點以后可以隨時禁用某個斷點,使斷點暫時無效。程序運行到該斷點不會暫停程序,但斷點依舊存在,以后還可以使用它。要屏蔽某個斷點,可以在斷點列表中選中斷點,在快捷菜單中選擇“Enabled”命令,去除“Enabled”前的勾選,斷點被屏蔽。在激活斷點時,只需將再次單擊“Enabled”即可。12十二月2023DELPHI程序設計基礎教程9.4.2單步執(zhí)行對程序進行調試時,常常要監(jiān)視程序運行的進度、當前狀況以及各種變量在不同運行階段的值。通過單步或跟蹤調試,能單函數(shù)(過程)或單條語句逐步運行程序,以發(fā)現(xiàn)程序中的錯誤。單步調試能使程序每次執(zhí)行一行代碼,可以使用“運行”菜單下的“步越”命令,或直接使用F8快捷鍵。跟蹤調試與單步調試有點類似,每次也是執(zhí)行一行代碼,不同的是跟蹤調試能進入被調用的函數(shù)(過程)內部,在函數(shù)和過程中,每次也只執(zhí)行一行代碼??梢允褂谩斑\行”菜單下的“步入”命令或F7快捷鍵進行跟蹤調試。為加快程序調試速度,可以先在可疑代碼行前設置斷點,先將程序執(zhí)行到斷點,然后接著使用單步或跟蹤調試。12十二月2023DELPHI程序設計基礎教程9.4.3查看變量在單步或跟蹤調試時,鼠標在變量上停頓,可以顯示該變量的值,但僅能顯示當前鼠標指向的變量值。有時為了直觀的分析、比較變量或表達式在不同運行時期的值,需要同時查看多個變量。為實現(xiàn)這個目的,Delphi提供了監(jiān)視窗口(WatchList)。程序調試時可以把需跟蹤的變量或表達式加入到監(jiān)視窗口。12十二月2023DELPHI程序設計基礎教程9.4.3查看變量添加監(jiān)視變量或表達式使用如下方法:(1)在代碼編輯器中,右擊需監(jiān)控的變量或表達式,在彈出菜單上執(zhí)行“Debug|AddWatchAtCursor”命令;(2)在代碼編輯器中,光標定位到監(jiān)控變量上,按Ctrl+F5鍵。以上方法添加了跟蹤變量后,會彈出如圖9-7所示“WatchList”(監(jiān)控)窗口。變量前的復選框用來允許或暫停該變量的監(jiān)視,Value顯示了變量當前的值,從中可以監(jiān)視到變量值的變化。圖9-7監(jiān)視窗口12十二月2023DELPHI程序設計基礎教程9.4.3查看變量刪除監(jiān)視變量可以在監(jiān)視窗口列表中右擊鼠標,執(zhí)行彈出菜單中的“DeleteWatch”命令?!癉eleteAllWatch”命令可以刪除所有監(jiān)視變量或表達式。12十二月2023DELPHI程序設計基礎教程9.4.4其他調試方法與技巧在程序調試過程中,往往會因為程序的錯誤導致程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論