集成式调试器是Delphi IDE的一个重要特性。该调试器使用户能方便地设置断点、监视变量、检查对象等等。在运行程序时,使用该调试器能快速查找出程序发生了什么(或未发生什么)。一个号的调试器对程序开发的效率至关重要。

调试工作容易被忽略。我也是刚开始学习Windows编程时,很长时间都未理睬调试器,因为当时忙于学习如何编写Windows应用程序。当后来知道这是一个很有价值的调试器的后,才后悔为什么没有早点使用它。希望大家从我的经历中吸取教训。

一、为什么使用调试器

对于这个问题的回答很简单:调试器能帮助用户查找程序中的错误。

但是,调试过程不仅仅是查找错误,它还是一个开发工具。尽管调试很重要,但仍有很多程序员不愿花时间来学习如何使用IDE调试器的各种性能。结果,他们付出了更多的时间和精力,更不用提由于查不出程序中的错误而导致的失败。

可在调试器下启动程序,开始调试,也可按【F9】自动地使用调试器。

二、调试器菜单项

在详细介绍调试器之前,先来看看有关调试器的菜单项目。其中一些菜单项在主菜单的【Run】下,另一些在Code Editor的快捷菜单上。

1、Code Editor快捷菜单中的调试菜单项

  • 【Toggle Breakpoint】快捷键【F5】在Code Editor中的当前行上设置或关闭一个断点
  • 【Run to Cursor】快捷键【F4】启动程序并运行该程序至Code Editor中光标所在行
  • 【Goto Address…】快捷键【Ctrl + Alt + G】允许用户指定程序中的一个地址,程序在此地址恢复执行
  • 【Inspect…】快捷键【Alt + F5】为光标所在对象打开Debug Inspect窗口
  • 【Evaluate/Modify…】快捷键【Ctrl + F7】允许用户在运行时查看、修改变量
  • 【Add Watch at Cursor】快捷键【Ctrl + F5】将光标所指变量添加到Watch List中
  • 【View CPU】快捷键【Ctrl + Alt + C】显示CPU窗口

主菜单上【Run】菜单项是一个下拉菜单,有若干菜单项与调试器下运行程序有关。Run菜单项使用户能在调试器下启动一个程序、终止运行在调试器下的程序、命名若干个函数。其中有些菜单项与Code Editor中的菜单项目一样。

2、主菜单【Run】下的菜单项目

  • Run——【F9】编译程序并在IDE调试器控制下运行该程序。
  • Parameters——【无】允许用户为程序输入命令行参数并在调试DLL时指定一个宿主应用程序(host application)。
  • Step Over——【F8】执行执行点所在的源代码行,并停在下一个源代码行。
  • Trace Into——【F7】跟踪执行点处的方法。
  • Trace to Next Source Line——【Shift + F7】移动执行点到程序源代码的下一行。
  • Run to Cursor——【F4】运行程序,并且当程序执行到源代码当前行时暂停。
  • Show Execution Point——【无】在Code Editor中显示程序执行点。如果需要可滚动源代码窗口,仅当程序暂停执行时可用。
  • Program Pause——【无】执行点一进入程序源代码就暂停程序执行。
  • Program Reset——【Ctrl + F2】无条件终止程序并返回Delphi IDE。
  • Inspect…——【无】显示Inspect对话框,因而用户可输入要检查对象的对象名。
  • Evaluate/Modify…——【Ctrl + F7】显示“Evaluate/Modify”对话框。
  • Add Watch…——【Ctrl + F5】显示“Watch Properties”对话框。
  • Add Breakpoint——【无】显示一个子菜单,该子菜单包含有增加源代码、地址、数据或模块装入断点的菜单项。如下图:

以上这些菜单项在调试应用程序时经常要使用,这些调试操作的键盘快捷键也应该熟悉。

Delphi应用程序的调试(一)的更多相关文章

  1. Delphi应用程序的调试(五)其他调试工具

    Delphi应用程序的调试(五)其他调试工具 Delphi7中提供了一些附加调试工具来帮助用户检查程序错误.从性能上讲,其中一些工具属于高级调试工具.尽管高级调试工具不像其他工具那样常用,但对于经验丰 ...

  2. Delphi应用程序的调试(二)使用断点

    Delphi应用程序的调试(二)使用断点 使用断点(Using Breakpoints) 当用户从Delphi IDE 运行程序时,程序全速运行,只会在设置了断点的地方停住. New Term 断点( ...

  3. Delphi应用程序的调试(十)调试器选项(在IDE中不要使用异常)

    可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局 ...

  4. Delphi应用程序的调试(十)调试器选项

    可在两个级别上设置调试选项:工程级和环境级.在前面的讲解中讲解了工程级调试选项,通过主菜单[Project | Options…]打开如下对话框: 可在Debugger Options对话框中设置全局 ...

  5. Delphi应用程序的调试(六)步进式代码调试

    步进式代码调试(Stepping Through Your Code) 步进式代码调试是最基本的调试操作之一,但仍要在此讲述.人们常常容易犯只见树木不见森林的错误.经常复习基本的知识有助于读者了解以前 ...

  6. Delphi应用程序的调试(三)监视变量

    监视变量(Watching Variables) 当程序停在一个断点处时,用户做些什么呢?通常用户在断点处停下来是要检查变量的值,某个变量的值是否与预料的取值相同?或者某个变量取什么值(事先并不知道这 ...

  7. Delphi应用程序的调试(四)The Debug Inspector

    调试检查器(The Debug Inspector) Debug Inspector使用户能查看诸如类和记录的数据对象,也可以用它来查看整数.字符数组等简单数据类型,但这类简单数据类型最好是用Watc ...

  8. Delphi插件创建、调试与使用应用程序扩展

    Delphi插件创建.调试与使用应用程序扩展 翻译 : MiracleZ  有没有使用过Adobe Photoshop?如果用过,你就会对插件的概念比较熟悉.对外行人来说,插件仅仅是从外部提供给应用程 ...

  9. Docker容器环境下ASP.NET Core Web API应用程序的调试

    本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...

随机推荐

  1. Python WSGI开发随笔

    本文记录学习WSGI时的一些知识点,值得后续学习中注意. wsgi应用接口只要是一个可调用的对象就行,这个可调用的对象需要: 1. 接受两个位置参数: a. 包含CGI形式变量的字典: b. 应用调用 ...

  2. add a private constructor to hide the implicit public one(Utility classes should not have public constructors)

    sonarlint提示add a private constructor to hide the implicit public one Utility classes should not have ...

  3. iOS 多线程简单使用的具体解释

    主线程 一个iOS程序执行后.默认会开启1条线程,称为"主线程"或"UI线程"(刷新UI界面最好在主线程中做.在子线程中可能会出现莫名其妙的BUG) 主线程的作 ...

  4. java String.intern();

    0.引言 什么都先不说,先看下面这个引入的例子: String str1 = new String("SEU")+ new String("Calvin"); ...

  5. Thinkphp5笔记一:项目部署

    系统:window 7 64位 Thinkphp版本:5.0.5 环境:wampserver集成 笔记分为两大部分,配置篇与数据库篇 一.虚拟主机部署/本地部署 在网站根目录下建立文件index.ph ...

  6. .NET 4并行编程入门之Task的取消[转]

    原文:http://www.cnblogs.com/Leo_wl/archive/2010/06/01/1749596.html前言:因为Task是.NET 4并行编程最为核心的一个类,也我们在是在并 ...

  7. Android学习之——实现圆角Button

    在drawable文件夹下新建btn_shape.xml文件: <?xml version="1.0" encoding="utf-8"?> < ...

  8. 如何在Java 环境下使用 HTTP 协议收发 MQ 消息

    1. 准备环境在工程 POM 文件添加 HTTP Java 客户端的依赖. <dependency> <groupId>org.eclipse.jetty</groupI ...

  9. centos7系统下nginx安装并配置开机自启动操作

    准备工作 我的centos7系统是最小化安装的, 缺很多库, 首先安装必须的运行库 ? 1 2 3 4 5 6 7 8 9 10 11 yum install wget gcc gcc-c++ pcr ...

  10. [Scikit-learn] 2.1 Clustering - Gaussian mixture models & EM

    原理请观良心视频:机器学习课程 Expectation Maximisation Expectation-maximization is a well-founded statistical algo ...