12.4.1.2 運行程序
通過調(diào)試器(包括內(nèi)置調(diào)試器)運行程序,當程序處于等待狀態(tài)時,調(diào)試器可以獲得控制,利用調(diào)試器的功能來檢查當前程序的狀態(tài)。通過合理布置屏幕顯示,使應(yīng)用程序運行窗口和Code Editor(代碼編輯器)互不重疊,可以讓用戶在它們間方便地切換以觀察代碼執(zhí)行的效果。
如果希望使用命令行參數(shù)來調(diào)試程序,則可以通過Run|Parameters 菜單打開運行參數(shù)對話框進行設(shè)置。
12.4.2 程序運行的控制
程序運行控制的方法和使用如下表。
表12.7 程序運行控制的方法和使用途徑
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
方法 使用途徑
───────────────────────────────
運行到光標位置 ● Code Editor加速菜單的Run to Cursor項
(Run to Cursor) ● Run主菜單的Run to Cursor項
● F4
跟蹤(Trace Into) ● Run主菜單的Trace Into項
● Trace Into加速按鈕
● F7
步進(Step Over) ● Run主菜單的Step Over項
● Step Over加速按鈕
● F8
運行到斷點 設(shè)置斷點并按正常方式運行
暫停程序執(zhí)行 Run主菜單的Program Pause項
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
跟蹤和步進都是一種單步執(zhí)行方式。但“步”的含義不同。對跟蹤而言它一次執(zhí)行一條簡單程序語句。當碰到包含調(diào)試信息的函數(shù)或過程調(diào)用時則跳入該函數(shù)或過程,并執(zhí)行其第一條可執(zhí)行語句。對步進而言它一次執(zhí)行一條當前模塊的可執(zhí)行語句,而不管該語句是否是函數(shù)或過程調(diào)用。
運行到光標位置和運行到斷點都是程序正常運行到某一確定的源代碼位置,而后進入調(diào)試狀態(tài)。但相對于運行到光標位置而言,運行到斷點更為靈活。因為斷點一次可設(shè)置多個,同時也可以對斷點設(shè)置一定的條件。只有滿足該條件程序運行才會中止。
12.4.3 斷點的使用
12.4.3.1 設(shè)置斷點
設(shè)置斷點首先在Code Editor中選定你想設(shè)置斷點的代碼行,而后進行如下的任一種操作:
● 單擊選定代碼行左邊的空白
● 按F5
● 選擇Code Editor加速菜單的Toggle BreakPoint項
● 選擇Run|Add Breadpoint打開斷點編輯對話框(Edit BreakPoint Dialog Box),而后選擇New去確認一個新的斷點設(shè)置或選擇Modify去對一個存在的斷點進行修改
● 從BreakPoint List加速菜單中選擇Add BreakPoint項
斷點必須位于可執(zhí)行代碼行上,凡設(shè)置在注釋、空白行、變量說明上的都是無效的。另外,斷點既可以在設(shè)計狀態(tài)下設(shè)置也可以在運行調(diào)試狀態(tài)下設(shè)置。
12.4.3.2 斷點的操作
斷點列表窗口(BreakPoint List Window)列出了所有斷點所在的源文件名、行號、條件以及已通過的次數(shù)。如果一個斷點非法或失去功能,則在列表窗口中變灰。
斷點列表窗口可以通過選擇View|BreakPoint菜單打開。
斷點列表窗口是斷點操作的基礎(chǔ)。
1.顯示和編輯斷點處的代碼
利用斷點列表窗口可以快速找到斷點在源代碼中的位置。
首先選定斷點而后從加速菜單中選擇View Source或Edit Source。此時Code Editor更新,顯示該斷點位置處的代碼。如果選擇的是View Source,則斷點列表窗口仍保持活動;如果選擇的是Edit Source,則Code Editor獲得輸入焦點,可以在斷點位置修改源代碼。
2.斷點功能的喪失和恢復(fù)
使斷點失去功能可以使斷點從當前程序運行中隱藏起來。假如你定義了一個斷點當前并不需要,但可能在以后使用,則這一功能是很有用的。
斷點列表窗口加速菜單的Disable BreakPoint和Disable All BreakPoints項可以使當前選中斷點或所有斷點失去功能。
加速菜單中的Enable BreakPoint和Enable All BreakPoint 可以使相應(yīng)斷點恢復(fù)功能。
3.斷點的刪除
斷點刪除可以從Code Editor或斷點列表窗口中進行。
從Code Editor:
● 把光標停到包含斷點的行并按F5(或選擇加速菜單的Toggle BreakPoint)
● 單擊包含斷點行左邊的終止符
從斷點列表窗口:
● 選中欲刪除的斷點并選擇加速菜單的Delete BreakPoint項
● 刪除當前所有斷點,則選擇加速菜單的Delete All BreakPoints項
12.4.3.3 修改斷點屬性
斷點列表窗口雙擊選定斷點或從加速菜單中選擇Edit BreakPoint項,可以打開斷點編輯對話框,用于顯示和修改斷點的屬性。
利用斷點編輯對話框可以改變斷點的位置,設(shè)置斷點條件。
斷點條件包括兩種:布爾表示式和通過次數(shù)。
Condition編輯框用于設(shè)置布爾表達式條件。如果表達式值為真(或非零)則程序運行在斷點處中止;否則調(diào)試器將忽略該斷點。
Pass Count編輯框用于設(shè)置通過次數(shù)條件,即只有當程序運行在該斷點處通過設(shè)定次數(shù)時程序運行才在該斷點處中止。這往往用于對循環(huán)體內(nèi)語句的調(diào)試。
有一點應(yīng)引起注意的是:當Condition和Pass Count同時設(shè)置時,Pass Count是指滿足條件的通過次數(shù)。
對如下一段程序:
var
i,Re,s: Integer ;
begin
s := 1;
Re := 0;
for i:=1 to 100 do
Re:=Re+s*i ;
end;
在 Re := Re + s*i; 一行設(shè)置一斷點。
若條件設(shè)置為:
Condition : i = 3
Pass Count: 4
則當程序中止時檢測i 的值為7。
12.4.3.4 斷點和程序執(zhí)行點顏色的設(shè)置
選擇Option|Environment進入環(huán)境設(shè)置對話框而后選擇Editor Colors頁標簽。此時即可對有關(guān)項按自己的希望設(shè)置背景和前景色。
12.4.4 監(jiān)視數(shù)據(jù)的值
內(nèi)置調(diào)試器提供了如下的工具用于監(jiān)視程序中數(shù)據(jù)的值:
● 監(jiān)視列表窗口
● 計算/修改對話框
● 調(diào)棧窗口
12.4.4.1 監(jiān)視表達式
監(jiān)視列表窗口(Watch List Window)顯示程序運行中當前監(jiān)視表達式的值。
選擇View|Watches可以打開監(jiān)視列表窗口。
從Code Editor中添加一個監(jiān)視表達式最方便的方法是:
1.選中要監(jiān)視的表達式;
2.從Code Editor加速菜單中選擇Add Watch把表達式添加到監(jiān)視列表窗口。
也可以利用下面的方法產(chǎn)生一個監(jiān)視表達式:
1.用下列方法之一打開監(jiān)視屬性對話框(Watch Properties Dialog Box):
●主菜單中選擇Run|Add Watch
●在光標處從Code Editor加速菜單中選擇Add Watch
●按Ctrl-F5
●雙擊監(jiān)視列表窗口中的一個監(jiān)視表達式
●從監(jiān)視列表窗口選定一個表達式而后從加速菜單中選擇Edit
2.在監(jiān)視屬性對話框的Expression下拉列表框中輸入或選擇一個被監(jiān)視的表達式;
3.設(shè)定表達式的顯示格式和使能狀態(tài)。
與斷點類似,利用加速菜單也可以使監(jiān)視表達式功能喪失、恢復(fù)或刪除監(jiān)視表達式。
12.4.4.2 計算/修改表達式
選擇Run|Evaluate /Modify可打開計算/修改對話框。當單擊Evaluate按鈕時,Expression編輯框中表達式的值顯示在Result域中。
Expression中可以輸入或選擇任何合法的表達式(包括對象的屬性),但不包括;
1.包含有當前執(zhí)行點不能引用的局部或靜態(tài)變量的表達式;
2.函數(shù)或過程調(diào)用。
Expression中的表達式可以帶特定的格式字符用于規(guī)定其顯示格式。 格式字符及其功能如下表。
表12.8 格式字符及其功能
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
格式字符 功 能
─────────────────────────────────
$,H,X 以十六進制格式顯示標量
D 以十進制格式顯示標量
C 把ASCII碼在0..31的特殊字等顯示為ASCII碼圖形
Fn 用n個有效數(shù)字顯示浮點數(shù)
M 以十六進制方式顯示一變量的內(nèi)存轉(zhuǎn)儲值
P 以段和偏移量格式顯示指針。兩部分皆為四位十六進制值
R 顯示記錄、對象的域名和值(例如 X:5,Y:2)
S 用ASCII碼顯示字符串(包括特殊字符)。用于修改內(nèi)存轉(zhuǎn)儲值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
修改表達式的值常用于驗證錯誤解決方案的正確性。在Expression編輯框中輸入或選定欲修改的表達式,單擊Evaluate按鈕觀察表達式的當前值。而后在New Value編輯框中輸入或選中一個新值,并單擊Modify按鈕確認并更新數(shù)據(jù)項。這種修改只影響特定的程序運行。
修改表達式的值(特別是指針變量和數(shù)組下標)可能會引起無法預(yù)計的后果。因而使用中要特別小心。
相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |