可在兩個級別上設置調試選項:工程級和環境級。在前面的講解中講解了工程級調試選項,通過主菜單【Project | Options…】打開如下對話框:
可在Debugger Options對話框中設置全局級調試選項。從主菜單【Tools | Debugger Options】菜單項調出Debugger Options對話框。
在Debugger Options對話框的底部有一個標記為Integrated debugging的復選框,它控制是否使用IDE調試器調試程序。如果選中Integrated debugging復選框,則使用IDE調試器;如果不選中這個選項,則不使用IDE調試器;這意味着當用戶點擊Run按鈕時,程序會執行,但調試器失效,因此所有斷點均不起作用。
調試器選項對話框有四個頁面:General,Event Log, Language Exceptions,OS Exceptions。下面將分別介紹:
1、通用(General)頁面
General頁面是用戶設置通用調試選項的地方,如下圖:
【Map TD32 keystrokes on run選項】告訴Code Editor使用Turbo Debugger中使用的鍵擊映射(Turbo Debugger是Borland公司的一個單獨調試器)。如果用戶長期使用Turbo Debugger,並且對它的鍵映射很熟悉,那么該選項不失為一個好工具。
當程序在調試器下運行時,【Mark buffers read-only on run選項】將Code Editor緩沖區設置成只讀緩沖區。這樣,在調試器下啟動程序后,就不能再編輯源代碼,直至程序終止運行。如果要在調試器期間修改源代碼,則要將此選項關閉。
【Inspector stay on top選項】控制着Debug Inspector窗口是否總位於Code Editor的上面。這時一個好特性,因為當用戶步進式調試代碼時,多數時候都希望Debug Inspector窗口在Code Editor的上面。
當程序運行在調試器下面時,【Rearrange editor local menu on run選項】改變Code Editor快捷菜單的外觀。選中此選項,Code Editor菜單中調試專用菜單項移到菜單頂部,以方便用戶選用。
2、事件日志(Event log)頁面
Event Log頁面用於設置Event Log選項。可以選擇一個數來限制同一時間Event Log中可出現的消息條數,也可以不作限制。還可以在Event Log中選擇想看的消息的類型。
3、語言異常(Language Exceptions)頁面
此頁面用於控制調試器碰到的VCL異常的類型。本頁面上最重要的選項是【Stop on Delphi Exceptions選項】。當選中此選項時,如果出現異常,調試器就會暫停程序執行。當關閉此選項時,調試器就以普通方式處理VCL異常,即彈出一個消息框通知用戶程序所出現的錯誤。
Note
當選中【Stop on Delphi Exceptions選項】時,調試器碰到異常就會暫停,不管用戶程序中是否對該異常做了處理。如果不希望調試器每碰到一個異常都停止,就關閉此選項。這個選項相當於老版本Delphi中的【Break on exception選項】。
【Exception Types to Ignore選項】用於指定被調試器忽略的異常事件的類型。在本表中列出的所有異常事件類型都被調試器忽略,並以缺省方式處理。這與關閉【Stop on Delphi Exceptions選項】的效果一樣。
要往表中增加異常事件類型,點擊Add…按鈕並輸入異常事件類型名稱。例如,要通知調試器忽略“被0除”異常事件,可點擊Add按鈕,並在Exception Type字段輸入EDivByZero。如下圖:
添加到該列表中的異常事件類型適用於所有工程。
4、OS(操作系統)異常頁面
該頁面控制調試器或用戶程序是否處理操作系統異常事件。如下圖:
當【Handled by選項】設為User program時,碰到異常事件,調試器就中斷程序執行。當這個選項被設為Debugger時,以普通方式處理VCL異常,即彈出一個消息框通知用戶程序中發生的錯誤。
Note
當把【Handled by選項】設置成Debugger時,調試器一碰到異常事件就會中斷程序運行,不管用戶程序是否對異常事件做了處理。如果不希望調試器每碰到一個異常事件就中斷,則要將此選項設為User Program。這個選項相當於老版本Delphi中的【Break on exception選項】。
【On resume】選項確定當重新恢復程序執行后,如何處理異常事件。
Exceptions列表框中列出了可能的操作系統異常事件。要為某個類型設定選項,點擊Exceptions列表中該異常事件類型,然后按要求設定Handled by和On resume選項。Exceptions列表框左邊緣的符號指示異常處理和恢復執行設定。如下圖:
小結
調試程序是一項無休止的任務。調試程序不單單是指查程序中的故障。精明老練的程序員在開始創建新工程時就開始學習使用調試器。調試器既是開發工具又是查找故障的工具。大家還要多花時間實際使用調試器,才能精通它。就從現在開始吧。