熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:異常處理與程序調試(三)[3]

2013-11-23 17:50:25  來源: Delphi編程 

  修改表達式的值常用於驗證錯誤解決方案的正確性在Expression編輯框中輸入或選定欲修改的表達式單擊Evaluate按鈕觀察表達式的當前值而後在New Value編輯框中輸入或選中一個新值並單擊Modify按鈕確認並更新數據項這種修改只影響特定的程序運行

  修改表達式的值(特別是指針變量和數組下標)可能會引起無法預計的後果因而使用中要特別小心

   顯示函數調用

  選擇View|Call Stack可以顯示調棧窗口(Call Stack Window)調棧窗口的頂端列出了應用程序最近的函數調用

  利用調棧窗口可以退出當前跟蹤的函數可以利用加速菜單項顯示或編輯位於特定函數調用處的源代碼

   其它調試工具

  Delphi的內置調試器雖然功能很強大但並不能勝任所有的任務同時由於內置調試器在執行中引起程序環境的細微變化所以可能影響錯誤的發生方式為此我們需要使用其它調試工具來完成我們的任務這些調試工具包括Turbo DebuggerWinSightWinSpector和BrowserBrowser將在下一節中專門進行介紹

   Turbo Debugger

  Turbo Debugger是Borland公司推出的第三代語言調試器它雖然還沒有推出完全支持Delphi的新版本但也基本能勝任一般Delphi程序的調試

  Turbo Debugger在字符模式下執行但它是一個真正的Windows程序它僅使用基於字符的界面由於Turbo Debugger是一個准備控制其它程序的特殊程序因此不可以使用通常Windows任務切換功能如Alt+Tab

  Turbo Debugger的操作大部分與內置調試器相同或類似利用File|Open菜單裝入要調試的文件就可以開始一個調試過程

  利用Turbo Debugger必須把調試符號信息儲存在可執行文件中具體操作見( )中介紹

  Turbo Debugger與內置調試器相比有許多新的功能

  首先它提供了許多在低級硬件信息方面的控制可以完全訪問CPU的寄存器標志及系統內存用戶可以跟蹤遠指針到內存位置並直接檢查它們的內容Turbo Debugger可以跟蹤進到代碼中即使得不到源代碼也可以

  Turbo Debugger支持許多Windows的特殊功能它可以跟蹤Windows消息讓用戶查看程序的局部堆和全局堆並可以浏覽包括DLLs在內的組成程序的所有代碼單元列表

  另外Turbo Debugger支持遠程執行能力可以通過串口鏈接或通過支持NetBIOS的網絡配置Turbo Debugger控制另外一台機器在這種模式下一台機器顯示調試器屏幕另一台機器顯示被跟蹤的程序這允許在一個屏上單步執行程序並在另一屏上監視結果

   WinSight

  WinSight 是一個用於查看Windows 對象並跟蹤消息的發送和接收的調試工具WinSight的圖標可以在Delphi程序組中找到

  WinSight界面分為兩部分上面為對象樹窗口下面為消息跟蹤窗口如圖所示

  在實際應用中用戶可能只是對其中的一部分消息感興趣而又不希望它們淹滅在無用信息之中為此用戶可以打開Message菜單並選擇Selected Windows按住Shift鍵單擊對象樹窗口中感興趣的對象所選定對象的任何消息都顯示在消息跟蹤窗口中

  如果用戶只想跟蹤某些消息類則打開Message菜單並選擇Options 使用如圖所示的檢查框過濾消息

   小結

  本章介紹的內容核心是如何增強程序的健壯性並提高開發效率為此我們首先考察了Delphi的異常處理機制而後介紹了幾種程序調試工具在您即將結束基礎篇的學習時這些內容是您步入開發大型應用程序的高級程序員行列的必備武器

  返回目錄DELPHI基礎教程

       編輯推薦

       Java程序設計培訓視頻教程

       JEE高級框架實戰培訓視頻教程

  Visual C++音頻/視頻技術開發與實戰

  Oracle索引技術

  ORACLEG數據庫開發優化指南

  Java程序性能優化讓你的Java程序更快更穩定

  C嵌入式編程設計模式

  Android游戲開發實踐指南

[]  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25186.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.