ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:1.89MB ,
资源ID:6695361      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6695361.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(05 Eclipse 中的Java 程序调试.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

05 Eclipse 中的Java 程序调试.docx

1、05 Eclipse 中的Java 程序调试5 Eclipse 中的Java 程序调试Eclipse 平台内置了一个Java 调试器。该调试器不仅提供诸如单步执行、设置断点、检查变量以及暂时挂起和恢复线程等标准调试功能,而且提供了代码片段编辑测试窗页面和远程调试两个特殊的功能。 Eclipse 调试器是Eclipse 二进制文件中包含的标准插件。Eclipse 有一个特殊的调试视图,使得开发人员能够管理工作台中程序的调试和运行。Eclipse 平台虽然主要是一个Java 开发环境,但其体系结构也支持其他编程语言,例如同一个Eclipse 的调试视图也适用于C/C+语言。 5.1 调试视图简介

2、通过调试视图,可以管理和控制工作台中程序的运行或调试。通过设置断点、挂起线程、单步执行以及检查变量来控制程序的运行。 调试视图显示以下信息。 (1)被挂起的正在进行调试的线程的堆栈帧信息,所谓堆栈帧是程序运行时调用的方法以及它内部变量等信息。 (2 )程序中每个线程都作为一个节点。 (3 )正在运行的程序的进程。 调试视图包括进程视图和控制台视图。进程视图显示正在运行以及最近被终止的进程,控制台视图允许开发者通过标准输入和输出流对正在运行的进程进行交互操作。 (1)进行Java 程序的调试时,可以设置程序所需的运行环境。如果对运行环境没有特殊要求,可以在快捷方式栏选择【调试为Java应用程序】

3、(或在主菜单,选择【运行运行方式Java 应用程序】),弹出如图5-1 所示的窗口。 (2 )如果要定制程序调试的参数,可以选择【调试为Java应用程序】,在弹出的如图-2 所示的窗口对参数进行设置。 (3 )在设置窗口设定好调试参数后,点击【调试】,就会显示如图5-3 所示的调试视图。 5.2.1 本地调试 Java 调试器采用了C/S 结构,这使得它既可以调试本地运行的程序,也可以进行远程调试 (调试网络上其他电脑的Java 程序)。 本地调试是最常用的一类调试。代码编写和编译完成以后,就可以通过工作台的主菜单栏上的【运行调试】来启动程序。按照这种方式启动程序,就能够在Java 程序和调试

4、器之间建立连接,以便使用断点、单步控制以及表达式求值来调试程序。 建议在调试时尽量做到每行只有一条语句。因为如果一行有多条语句,部分调试器的功能无法使用,例如,如果同一行有多条语句,就无法设置断点或单步跳过,把源代码加入JAR文件。 1挂起和恢复线程 调试开始后,开发人员可以将正在执行的线程挂起,以便查看该线程堆栈帧的信息,步骤如下。 (1)在调试视图选择线程。 (2)在调试视图的工具栏选择 “挂起”按钮 ,线程将被挂起。调试视图显示该线程当前的调用堆栈(如图5-4 所示),并且调试视图中的编辑器也会突出显示该堆栈帧对应的代码,这行代码就是线程被挂起那一刻程序运行到的地方。 线程挂起时会自动选

5、择线程顶部的堆栈帧(即最近被调用的方法),变量视图将会显示堆栈帧中的变量以及它的值,复杂的变量可以被展开以便查看其成员的值。开发者也可以在调试视图的调用堆栈里选择一个方法调用,该方法的变量信息就会在变量视图显示出来,如图5-5 所示。 线程既可以被挂起,也可以恢复执行。 (1)在调试视图选择线程或它的堆栈帧。 (2)在调试视图的工具栏里点击“继续”按钮 (或按F8),线程恢复执行。此时,调试视图不再显示它的堆栈帧,变量视图也会清除与其相关的信息,如图5-6所示。 2单步执行程序 线程被挂起后,可以使用“单步控制”逐行执行程序。如果在这个过程中遇到断点(下一小节将详细讲述),那么将在断点处挂起并

6、且终止单步执行。 单步执行程序时有以下几种操作。 (1)“单步跳过”。不进入调用的方法内部,而是在该方法结束后,下一个方法执行前挂起。这个功能可以通过调试视图工具栏的“跳过”按钮 或F6功能键来实现。 (2)“单步进入”。将会进入调用方法的内部。这个功能可以通过调试视图工具栏的“进入”按钮 或F5功能键来实现。 (3)“单步跳入选择的内容”。能使程序运行直至已选择的方法被调用。在Java编辑器里,将光标覆盖希望进入的方法的名字,点击【运行】菜单(或Java编辑器上下文菜单)里的【单步跳入选择的内容】按钮启用该功能。这个功能还可以通过Ctrl+F5实现。 (4)“单步执行过滤器”。避免在调试过程

7、中出现中断的情况。这种中断是由于在没有源代码的情况下使用单步执行进入调用方法代码而导致的。中断发生时,会弹出一个窗口,要求输入源代码的位置。在使用只包含类文件的代码库时会发生这种情况。在过滤器中设置的任何包和类在单步进入只有二进制文件的类库时,调试器都不会弹出要求输入源代码位置的窗口。调试器也不会进入单步进入过滤器里的包和类。 要设置单步执行过滤器,选择主菜单里【窗口首选项】,在弹出的窗口选择【Java调试单步执行过滤】,如图5-7所示。在右边的窗口中可以添加类、包以及过滤器,还可以启用或是禁用过滤器(在调试视图里,单击右键在弹出的菜单里也可以关闭或打开过滤器)。 (5 )如果已经进入了方法调

8、用,并且看到了期望的结果, 是希望尽快从该方法返回,就可以使用 “单步返回”。这个功能通过功能键F7 实现。 (6 )一个线程被挂起后,可以让它恢复执行一直到某一行,这样可以让程序运行到某一行而不需要设置断点。选择希望运行到的那一行,然后使用快捷键Ctrl + R 。 - 3表达式的计算和显示 当JVM 挂起一个线程 (由于遇到断点或单步执行),就可以在堆栈帧的上下文中计算表达式。缺省情况下,表达式视图位于调试透视图的右上角,它与断点视图、变量视图等视图共享一个窗格。表达式视图的使用如下。 (1)选择要在其中求值的堆栈帧。对于变量和表达式视图而言,求值的上下文将由被选择的变量决定。如果没有选择

9、任何变量,求值的上下文就是堆栈帧。 (2 )可以在以下区域输入表达式和对表达式求值:显示视图、表达式视图的详细信息窗格、变量视图的详细信息窗格以及Java 编辑器。 (3 )选择被求值的表达式,单击右键并在弹出的菜单选择【显示】、【查看】或【执行】。【显示】和 【查看】的结果将显示在弹出的窗口里,如图 5-8 所示。【执行】不会显示结果,它仅仅是运行表达式。 (4 )通过按Esc 键或点击弹出窗口以外的区域,可以关闭这个弹出窗口。如果选择 【显示】,结果将在显示视图里显示。 4查看和修改变量的值 除了前面介绍的几种调试方法,还可以检查变量以确定其值是否正确。 有几种方法可以用来检查程序中的变量

10、。对于简单的变量,只需要在Java 编辑器中将鼠标移到变量 上 (不需单击)即可,这样会自动打开一个文 框并显示该变量的信息,包括它当前的值,如图5-9 所示。 如果要查看复杂变量的值,可以使用变量视图。变量视图显示当前范围内 (即堆栈帧的上下文)的所有变量。缺省情况下,变量视图位于窗口的右上角,它与表达式视图和断点视图共享一个窗格,如图5- 11 所示。 使用变量视图还可以修改变量的值,选择某个变量,单击右键并在弹出的菜单选择【更改值】。对于复杂的变量,可以选择变量的一个特定成员进行修改。如图5- 12 所示。 5.2.2 断点 当正在执行的程序线程遇到断点,它就被挂起了。断点视图和编辑器都

11、会显示断点,可以通过断点视图启用或禁用断点。 当程序运行到一个可用的断点时,它就会被挂起。可用的断点用一个蓝色的圆圈表示。一旦在虚拟机上载入了类并且安装了断点,可用的断点就会用蓝色的圆圈上加一个勾表示。不可用的断点不会导致线程挂起,它用一个白色的圆圈表示。断点在编辑器区域左边的垂直标尺和断点视图中显示,如图5- 13 所示。 可以为程序的可执行的代码 (即没有注释掉的代码)添加行断点。步骤如下。 (1)在编辑器区域打开将要加入断点的文件。 (2)在想要添加断点的代码的左方,即垂直标尺上单击右键,并在弹出的菜单里选择【切换断点】,如图5-14 所示。还可以通过双击垂直标尺来添加断点。 在有断点的

12、那一行代码执行之前,线程就会挂起。调试器会自动选择被挂起的线程,并且将线程堆栈里的信息在调试视图里显示出来。而在调试透视图的编辑器中,设置断点的那一行代码会被突出显示。 当不再需要某个断点时,可以很方便地将其删除,删除步骤如下。 (1)在编辑器区域打开将要删除断点的文件。 (2 )在想要添加断点的那一行的左方,在垂直标尺上单击右键并在弹出的菜单里选择 【切换断点】。也可以通过双击源代码旁边的垂直标尺来删除断点。 如果在同一个地方经常添加或删除断点,可以启用或禁用该断点。启用一个断点后,程 序线程会在这个断点挂起;禁用该断点后,线程就不会在该处挂起。 1方法断点 方法断点只适用于二进制文件。在J

13、ava 程序里,它们适用于类文件 (即.class 文件)。添加方法断点的步骤如下。 (1)在大纲视图打开一个类,选择一个想要加入方法断点的方法。 (2 )单击右键并在弹出菜单里选择【切换方法断点】,如图5-15 所示。 (3 )断点添加以后,如果这个类的源文件存在,会在文件编辑器的标记栏里显示被选择 的方法的断点。(4 )当进入该方法的那一刻,在该方法任何代码执行之前,线程就被挂起。也可以将方 法断点设置为在方法退出时中断。 2条件断点 可以为断点设定条件,以便断点在遇到以下情况才会使线程挂起。 (1)当条件成立的情况下。 (2 )当条件发生变化的情况下。 为一个断点设定条件的步骤如下。 (

14、1)找到需要设定条件的断点 (通过调试视图或编辑器的标记栏)。(2 )右键单击断点,在弹出菜单中选择【断点属性】,弹出如图5- 16 所示的窗口。 (3 )在属性菜单选择 “启用条件”后,在文 区域里输入条件表达式。 (4 )如果希望每次条件成真时断点都会使线程挂起,那么就要在 “暂挂”这一项选 择 “条件为 true ”;如果希望在根据条件判断的结果改变时才使线程挂起,就要选择另一项。 (5 )点击【确定】完成条件断点的设定。 从图5- 16 可以看到,还有一个“命中计数”的选项。命中计数适用于行断点、异常断点、 检查点以及方法断点。断点启用“命中计数”后,“命中计数”就开始工作。线程运行经

15、过该断点n 次 (即设定的次数)后,线程就会被挂起。 是这个 “命中计数”只能作用一次,除非它被再次启用或更改命中次数。 3Java 异常断点 通过使用异常断点,可以在抛出异常时挂起线程;可以在捕获异常的地方挂起线程;可以在未捕获异常的地方挂起;还可以在捕获和未捕获异常的地方都挂起执行。设置Java 异常断点的步骤如下。 (1)在断点视图或工作台 【运行】菜单里,选择【添加 Java 异常断点】。在出现的窗口会列出所有可用的异常,如图5- 17 所示。 (2 )输入或从列表里选择一个希望捕捉的异常。在该窗口的底部,选择希望在什么地方挂起线程。如果希望在抛出并捕获异常的地方挂起线程,就选择“已捕

16、获”;如果希望在没有捕获异常的地方挂起线程,就选择 “未捕获”。 5.2.3 远程调试 由于Java 调试器采用了C/S 的设计,可以启动网络中其他电脑上的Java 程序,并且可以在本地工作台对其进行调试。当为不能建立开发 台的计算机开发程序时,这个特性就非常有用。调试专用主机 (例如Web 服务器)上的程序,它也很有用。 - 注意:要进行远程调试,就必须使用支持这个特性的JVM (Java 虚拟机)。JDK1.4 以后的版本都支持整个特性。 - 在进行远程调试之前,必须能够在调试模式下启动远程计算机上的程序,以便它能与地调试器建立连接。用于启动程序和链接调试器的特定技术是基于VM(虚拟机)的

17、。 除了以上这些准备工作,还需要使用“远程Java 应用程序”启动配置。远程程序启动后,这个启动配置就会提供与应用程序建立的连接的信息。 按照以下步骤,就能进行远程调试。 (1)从工作台主菜单栏选择【运行调试】,弹出如图5- 18 所示的配置窗口。 (2 )在配置列表里选择 “远程Java 应用程序”。点击【新建】按钮,建立一个新的远程启动配置,它有3 个选项卡:连接、源和公共。 (3 )在“连接”选项卡的 “项目”栏填入或选择一个项目作为启动的参考,也可以不指定项目 。在 “连接”选项卡的 “主机”栏,填入Java 程序正在其中运行的主机的IP 地址或域 。在 “端口”栏,填入远地VM 接受

18、连接的端口。一般情况下,端口都是在远地VM启动时就确定了。“允许终止远程VM ”能确定是否在调试器中启用终止命令。(4 )单击【调试】,开始尝试按照填入的地址和端口来连接VM ,调试视图将会显示结果。 如果无法连接远地的VM ,就会出现错误信息。 5.3 代码片段编辑测试窗 JDT 添加了代码片段编辑测试窗的功能,用来在构建完整的Java 程序之前对部分 Java代码片段进行测试和求值。代码片段能在代码片段编辑器进行编辑和求值,产生的错误也会在编辑器中显示。 在Java 代码片段编辑器中,可以选择某代码片段,计算后将其结果作为字符串显示。代码片段编辑器允许在调试器的控制下执行、检查以及显示Ja

19、va 表达式。断点和异常将保持在普通调试会话下的工作方式。 代码片段编辑测试窗页面打开之后,首次在其中对表达式求值时,VM 就被启动。在关闭 (或显式终止)该页或者程序执行System.exit()语句之前,该页面的VM 保持活动的状态。 5.3.1 新建代码片段编辑测试窗代码片段编辑测试窗页面以.j page 作为后缀 。下面是新建代码片段编辑测试窗的步骤。 (1)在主菜单栏上,选择【文件新建其他】,在弹出的窗口选择【Java Java 运行与调试代码片段编辑测试窗页面】,如图5- 19 所示。 - (2 )点击 【下一步】,然后在弹出的如图5-20 所示的窗口里输入或选择文件夹,并且输入一

20、个文件 。 (3 )完成以上工作后,点击【完成】。一个新的代码片段编辑测试窗页面就会在编辑器中 打开,如图5-21 所示。 5.3.2 使用代码片段编辑测试窗 下面介绍如何使用代码片段编辑测试窗。 1检查对表达式求值的结果 通过这个功能,对表达式求值的结果将会在表达式视图中显示。 (1)在代码片段编辑测试窗页面中,可以输入一个表达式,也可以突出显示代码中已有的表达式。例如,输入 “System.getProperties(); ”。 (2)选择该表达式,并且在快捷栏选择【检查】按钮 ,或单击右键在弹出的菜单里选择【检查】条目。 (3 )检查的结果将在弹出的窗口显示,如图5-22 所示。 (4

21、)检查结果同时会在表达式视图显示,如图5-23 所示。 2显示对表达式求值的结果 这个功能将在代码片段编辑测试窗的编辑器里显示对表达式求值的结果。 (1)在代码片段编辑测试窗页面中,可以输入一个表达式,也可以突出显示代码中已有的表达式。例如,输入 “new j ava.util.Date(); ”。 (2)点击工具栏上的【显示】按钮 ,或者单击右键在弹出的菜单里选择【显示】条目。(3 )求值的结果将在代码片段编辑测试窗的编辑器里突出显示,如图5-24 所示。 3执行表达式 5.4 热代码替换 如果采用JVM 1.4 以上的Java 虚拟机,Eclipse 提供了一个新的,称为“热代码替换”的功能,它允许调试的时候对代码进行更改。使用“热代码替换”,只需要在编辑器中更改代码然后恢复调试即可,比选择 “退出程序更改代码重新编译再启动一个调试会话”的一系列步骤要方便很多。如果启动应用程序或者执行到程序出错的地方需要很长时间,那么这无疑是个非常有用的功能。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1