- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
调试的方法虽然千千万万,但归根结底,就是找到引发错误的代码。Eclipse 调试器的目标是让程序员能对本地或远程程序进行错误侦测与诊断。该调试器提 供所有标准调试功能,包括进行单步执行、设置断点和值、检查变量和值以及暂 挂和恢复线程的能力。这篇文章主要讲述Eclipse调试器,包括Debug视图,断 点的设置,Java代码的调试等等。与一些理论性较强的文章相比,本文更注重 实践,为读者提供更加使用的调试技巧。
Eclipse调试器
Eclipse平台的最大特色是插件化(Plugin)。调试是任何程序员都无法回避 的工作。因此Eclipse的内置插件Java开发工具包(Java Development Toolkit, 简称JDT)中集成了一个功能强大的Java调试器(Debugger)。实际上,JDT是 Eclipse工作平台(Eclipse Platform Workbench)的基础工具,除了调试器,还 提供透视图、视图、编辑器、搜索等Eclipse基础功能。
由于Eclipse调试器采用了基于客户端/服务器的设计模式,远程应用的调 试变得与本地一样简单。其工作原理是,本地Eclipse工作平台充当调试的客户 端,而远程应用所在的机器则充当了调试服务器的角色。
Debug视图
Debug视图作为Eclipse调试器透视图的一部分,管理与程序调试相关的功 能。如图所示,Debug视图呈树状结构,每一个线程对应一树节点。图中显示的 是暂挂线程Main的调试堆栈帧结构。
作为标准的Java调试平台,Debug视图提供了许多执行控制命令(Execution Control Commands),用于在程序中设置/取消断点,单步执行,暂挂与恢复线程。 以下是一些常用的执行控制命令:
Layout 布局
Debug视图的布局与断点调试等主体功能相比,显得并不那么乍眼,因此也 常被人忽略,不过Eclipse的魅力之一就是它的细节做的特别完美。我们简单介 绍一下Debug视图布局的特点,如图所示。
第一个特点是Automatic功能。选择菜单选项Layout - Automatic,可以 实现Debug视图在树状模式与Breadrumb模式之间的自动互换。相信很多编程人 员都喜欢Breadrumb模式,向面包片一样,一层一层的,直观,醒目。
Layout菜单的第二个特点Breadrumb模式。选择菜单选项Layout - Breadcrumb,打开Breadrumb模式。除此之外,选择菜单选项Layout - Auto-Expand Breadcrumb,可实现自动展开Breadrumb模式。当选择下拉框时, 可自动定位到暂挂线程的调试堆栈帧。这个细节对于编程人员来说,也是非常的 方便。
调试启动停止等相关命令
Debug视图提供了诸多的启停控制命令,叫法上与其它的调试器可能稍微有 些不同,具体如下:
启动调试视图:Eclipse提供三种方式来启动程序(Launch)的调试,分别是 通过菜单(Run - Debug) 图标(“绿色臭虫”)以及快捷键(F11),在这一点上, 与其他命令(例如Run)类似。
停止调试:Eclipse通过Terminate命令终止对本地程序的调试。特别的, 对于远程程序的调试,Eclipse使用Disconnect命令来终止与远程JVM的socket 连接。前面我们谈到,Eclipse调试器采用了基于客户端/服务器的设计模式, 本地Eclipse工作平台充当调试的客户端,而远程应用所在的JVM则充当了调试 服务器的角色。简单的说,Terminate命令终止本地调试,Disconnect命令终止 远程调试。Terminate/Disconnect All终止所有的调试,包括本地与远程。
重新启动调试:Eclipse通过Relaunch命令重新启动调试。这里需要指出 的是Relaunch支持两种重启动模式,一种是针对已经停止的程序调试,另一种 是针对Active的当程序调试。前者不难理解,效果上等同于Terminate+Launch。 后者的处理方式有些不同,效果上则等同于Launch 一个新的Debug项。实际上, 针对后一种情况,我们通常采用Eclipse的Terminate and Relaunch命令来达 到重启Debug的目的。
删除调试项:Eclipse支持针对多个程序的调试。我们称每一项对应一个 Debug Item。Remove命令将某一个Debug Item从当前的Debug视图中删除。不 过,Remove命令只适用于已停止的Debug Item,而对于运行中的Debug Item, Eclipse提供了 Terminate and Remove命令。假如想停止并清除所有的Debug Item,则
文档评论(0)