肯德尔系数 spss:netbeans调试程序的方法

来源:百度文库 编辑:九乡新闻网 时间:2024/04/19 11:39:29
调试是检查应用程序是否存在错误的过程。您可以使用以下方法进行调试:在代码中设置断点和监视,然后在调试器中运行代码。您还可以通过逐行执行代码并检查应用程序状态来查找任何问题。

IDE 使用 Sun Microsystems JPDA 调试器来调试程序。在启动调试会话时,所有相关的调试器窗口都将自动出现在屏幕的底部。您可以调试整个项目、任何可执行类以及任何 JUnit 测试。IDE 还允许您通过将调试器连接到应用程序进程来调试在远程计算机上运行的应用程序。

运行或调试 Web应用程序、JSP 页或 Servlet 时,您可以使用 HTTP 监视器来监视数据流。缺省情况下,将出现 HTTP 监视器,该监视器收集有关Servlet 引擎处理的 HTTP 请求的数据。对于引擎处理的每个 HTTP请求,监视器都会记录关于传入请求的数据、保留在服务器上的数据状态和 Servlet上下文。您可以查看数据、为将来的会话存储数据、重新显示和编辑以前的请求。有关 HTTP监视器的详细信息,请在主菜单中选择“帮助”>“帮助内容”。

对于自由格式项目,您必须为“调试项目”命令编写一个 Ant 目标。您还可以编写用于调试特定文件的目标,并将这些目标映射到项目的命令。

在此部分中,您将了解以下内容:

  • 基本调试
  • 启动调试会话
  • 调试器窗口
  • 逐步执行代码
  • 使用断点
  • 设置断点
  • 设置断点条件
  • 定制断点输出
  • 设置监视

基本调试

在此部分,我们将使用一个简单的示例来说明如何启动调试会话、如何以手动方式逐步执行代码以及如何监视变量和方法调用。我们将在后面的部分介绍更高级的功能,如设置断点和监视。

此部分的示例是 Array Fill 应用程序。此应用程序非常简单。它将创建一个 sampleBeans 数组,每个 Bean 包含两个属性:firstNamelastName。然后,它将为每个 Bean 的属性赋值并输出这些值。

首先需要运行该应用程序以确定它是否会抛出任何异常。下载并提取 ArrayFill 示例的 .zip 归档文件 (。要在 IDE 中打开 ArrayFill 项目,请按 CTRL-Shift-O 组合键找到提取的 ArrayFill 文件夹,然后单击“打开项目文件夹”。将在 IDE 中打开 ArrayFill 项目,并可在“项目”窗口中看到该项目的逻辑结构。http://www.netbeans.org/files/documents/4/446/ArrayFill.zip)

在“项目”窗口中,展开“源包”下的 arrayfill 包。arrayfill 包包含两个类:ArrayFillSampleBean。右键单击 ArrayFill.java,然后按 Shift-F6 组合键执行它。在“输出”窗口中出现的输出应该与如下所示类似:

java.lang.NullPointerException
at arrayfill.ArrayFill.loadNames(arrayFill.java:27)
at arrayfill.ArrayFill.main(ArrayFill.java:34)
Exception in thread "main"
Java Result: 1

启动调试会话

在 IDE 中启动调试会话时,IDE 将编译所调试的文件,在调试模式下运行它们,并在调试器窗口中显示调试器输出。要启动调试会话,请选择要调试的文件,然后从“运行”菜单中选择以下某个命令:

  • 调试主项目 (F5)。运行主项目,直至遇到第一个断点。
  • 步入 (F7)。开始运行主项目的主类,并在第一条可执行语句处停止。
  • 运行至光标 (F4)。启动调试会话,使应用程序运行至源代码编辑器中的光标位置,然后暂停应用程序。

如果在 IDE中打开了多个项目,请确保使用以下方法将 Array Fill 设置为主项目:在“项目”窗口中右键单击 ArrayFill节点,然后从上下文菜单中选择“设置主项目”。按 F7 键步入主项目的主类。如果未设置项目的主类,则 IDE 将提示您设置它。然后,IDE将在源代码编辑器中打开文件,显示“输出”窗口和调试器窗口,并刚好在 main 方法内部停止。

调试器窗口

让我们简单了解一下调试器窗口。调试器窗口在每次启动调试会话时自动打开,并在完成会话时自动关闭。缺省情况下,IDE 将打开三个调试器窗口:“局部变量”窗口、“监视”窗口和“调用栈”窗口。

“局部变量”窗口位于前端的调试器窗口

通过从“窗口”>“调试”菜单中进行选择,可以打开其他调试器窗口。如果在调试会话过程中打开了调试器窗口,该窗口将在您完成会话后自动关闭。如果在未启动调试会话的情况下打开调试器窗口,该窗口将一直保持打开状态,直到您手动关闭它。您可以通过将调试器窗口拖动到所需位置来对其进行排列。

下表列出了调试器窗口。

名称

快捷键

描述

局部变量

Alt-Shift-1

列出了当前调用中的局部变量。

监视

Alt-Shift-2

列出了选择在调试应用程序时进行监视的所有变量和表达式。

调用栈

Alt-Shift-3

列出了在当前线程执行期间执行的调用序列。

Alt-Shift-4

显示了由当前所调试的进程装入的所有类的分层结构。

断点

Alt-Shift-5

列出了当前项目中的断点。

会话

Alt-Shift-6

列出了当前在 IDE 中运行的调试会话。

线程

Alt-Shift-7

列出了当前会话中的线程组。

Alt-Shift-8

列出了项目类路径上的源目录。通过在此处取消选择类的源文件夹,可以设置是步入还是越过这些类。IDE 将自动越过 JDK 类;如果要步入这些类,请在此窗口中选择 JDK 源。

逐步执行代码

可以使用“运行”菜单中的以下命令来控制代码在调试器中的执行方式:

  • 越过 (F8)。执行一行源代码。如果源代码行包含调用,则执行整个例程而不逐步执行单个指令。
  • 步入 (F7)。执行一行源代码。如果源代码行包含调用,则会刚好在执行例程的第一条语句之前停止。
  • 步出 (Alt-Shift-F7)。执行一行源代码。如果源代码行是某个例程的一部分,则会执行该例程的其余各行,然后将控制权返回给例程的调用者。
  • 暂停。暂停执行应用程序。
  • 继续 (Ctrl-F5)。继续执行应用程序。应用程序将在下一个断点处停止。
  • 运行至光标 (F4)。将当前会话运行到源代码编辑器中的光标位置,并暂停应用程序。

在本示例中,使用 F7 键按一次一行的方式逐步执行代码。loadNames 调用中出现 NullPointerException,因此在步入该调用时,将在“局部变量”视图中监视 names 数组的值。每个 Bean 都包含一个 null 值。可以继续逐步执行 loadNames 方法 - names Bean 始终为 null。

在调试器中步入代码

此处的问题是,当代码行

SampleBean[] myNames=new SampleBean[fnames.length];

启动包含这些 Bean 的数组时,它不会实例化 Bean 自身。必须添加以下代码,在 loadNames 方法中实例化各个 Bean:


names=new SampleBean();

使其位于 loadNames 方法中的行 names.setLastName(lnames); 之前。

使用断点

大多数应用程序都太大,从而无法逐行进行检查。通常,在您认为会出现问题的位置设置一个断点,然后将应用程序运行到该位置。您还可以设置更为专用的断点(如仅当指定条件为 true 时停止执行的条件断点)或适用于某些线程或方法的断点。

在此节中,我们将使用上一个示例中的 ArrayFill 类,因此必须将上面添加的代码注释掉以便重现错误。

设置断点

如果仅希望设置简单的行断点,则可以单击所需行的左旁注处。在旁注中将会出现行断点图标 ()。再次单击此行断点可以将其删除。

在源代码编辑器中设置断点

对于更复杂的断点,请使用“运行”菜单中的“新建断点”(Ctrl-Shift-F8) 命令。“新建断点”对话框将使您能够选择要创建的断点类型并设置断点选项,如中断条件或断点输出到“输出”窗口的信息。

设置断点条件

仅当指定的布尔表达式为 true 时,条件断点才停止执行。如果要设置条件断点,请打开“新建断点”对话框,然后在“条件”字段中输入表达式。

例如,打开ArrayFill.java,在 main 方法的 loadNames 方法调用中设置插入点,然后按 Ctrl-Shift-F8组合键。在该对话框的“条件”字段中输入 names!=null 并单击“确定”。然后按 F5 键开始调试项目。此时会在 loadNames方法内中断程序的执行。

定制断点输出

在“新建断点”对话框中,您还可以指定到达断点时打印的信息。请在对话框底部的“打印文本”字段中输入任何消息。您可以使用变量引用要显示的某些类型的信息。

断点类型

下表列出了可用的不同断点类型。

类型

描述

可以在到达行时或在行中的元素满足某些条件时中断执行。

方法

如果在方法名称上设置了断点,则在每次执行该方法时都会停止执行应用程序。

异常

具有多个用于设置异常断点的选项。在捕获到特定异常、源代码中未处理特定异常或遇到任何异常(无论应用程序是否处理错误)时都可以中断执行应用程序。

变量

可以在访问(例如,将变量作为参数来调用方法)或修改特定类和字段中的变量时停止应用程序的执行。

线程

可以在启动和/或停止线程时中断执行应用程序。

如果设置了类断点,则可以在将类装入虚拟机和/或从虚拟机中卸载类时停止调试器。

设置监视

通过使用监视,可以在应用程序执行期间跟踪变量或表达式值的变化。要设置监视,请在源代码编辑器中选择要设置监视的变量或表达式,然后单击鼠标右键并选择“新建监视”(Ctrl-Shift-F7)。

您还可以在“监视”视图中创建固定监视。常规监视描述的是变量的内容,而固定监视描述的则是当前为变量指定的对象。要创建固定监视,请右键单击“局部变量”或“监视”视图中的任意项,然后选择“创建固定监视”。