eclipse调试详解
eclipse调试详解
作者: 高州人家 来源: 网络转载 浏览: 1610 次 好评: 0分 【 小 中 大 】 2007-11-16
Java 调试器具有客户机/服务器设计,因此,它可以用来调试以本地方式(在调试器所在的工作站上)或以远程方式(在网络中的另一台计算机上)运行的程序。
本地调试是最简单并且最常用的一种调试。完成编辑和构建 Java 程序后,可以使用工作台上的运行 > 调试...菜单项来在工作站上启动程序。以此方式启动程序将在调试器客户机与正在启动的 Java 程序之间建立连接。然后,可以使用断点、单步执行或表达式求值来调试程序。
准备调试
可通过遵循下列准则使程序更容易调试:
尽可能不要将多个语句放在同一行上,因为某些调试器功能部件是以行为基础来运行的。例如,不能在同一行上的多个语句上单步跳过或设置行断点。
如果您有源代码,则将源代码连接至 JAR 文件。
以调试方式启动 Java 程序
以调试方式启动程序允许您使用调试器来暂挂和继续执行程序、检查变量和对表达式进行求值。
要以调试方式启动 Java 程序,
在“包资源管理器”中,选择想要启动的 Java 编译单元或类文件。
选择运行 > 调试方式 > Java 应用程序。
或者选择调试工具栏按钮上的下拉菜单中的调试方式 > Java 应用程序。
现在就启动了程序,并且已启动的进程显示在“调试”视图中。
如果想要程序在 main 方法中停止以便您可以单步遍历它的整个执行,则创建 Java 应用程序启动配置,并选择主选项卡上的在 main 中停止复选框。
还可以通过选择项目而不是编译单元或类文件来调试 Java 程序。将提示您从定义 main 方法的那些类中选择一个类。(如果在项目中只找到了一个具有 main 方法的类,则会象选择了该类一样启动该类。)
暂挂线程
要暂挂正在执行的线程:
在“调试”视图中选择该线程。
单击“调试”视图工具栏中的暂挂按钮。该线程就会暂挂它的执行。将显示该线程的当前调用堆栈,并且在“调试”透视图中的编辑器中突出显示执行的当前行。
线程暂挂时,会自动选择该线程的顶部堆栈帧。“变量”视图显示堆栈帧的变量以及它们的值。可通过展开复杂变量以显示它们的成员的值来进一步检查复杂变量。
当暂挂了线程并且将光标悬浮在 Java 编辑器中的一个变量上时,就会显示该变量的值。
继续执行暂挂的线程
要继续执行暂挂的线程:
在“调试”视图中选择该线程或者它的堆栈帧。
单击“调试”视图工具栏中的继续按钮(或者按 F8 键)。线程将继续执行,但是将不再对该线程显示堆栈帧。这就清除了“变量”视图。
单步遍历 Java 程序的执行
暂挂线程时,可以使用单步控制来逐行单步完成程序的执行。如果在执行单步操作时遇到了断点,则在该断点处将暂挂执行,并且该单步操作将结束。
单步跳过
在“调试”视图中选择堆栈帧。该堆栈帧中的执行的当前行在“调试”透视图的编辑器中突出显示。
单击“调试”视图工具栏中的单步跳过按钮,或者按 F6 键。执行当前所选的行,但会在下一个可执行行上暂挂。
单步跳入
在“调试”视图中选择堆栈帧。所选帧中的执行的当前行在“调试”透视图的编辑器中突出显示。
单击“调试”视图工具栏中的单步跳入按钮,或者按 F5 键。调用在要执行的当前所选行上的下一个表达式,而执行会在调用的方法中的下一个可执行行上暂挂。
单步跳入选择
在“调试”视图中选择堆栈帧。所选帧中的执行的当前行在“调试”透视图的编辑器中突出显示。
在 Java 编辑器中,在执行的当前行中,将光标放置在想要单步跳入的方法的名称上。
单击“运行”菜单或 Java 编辑器上下文菜单中的单步跳入选择操作,或者按 Ctrl-F5 键。将继续执行,直到调用了所选择的方法为止。
使用过滤器单步执行
切换“调试”视图工具栏中的使用单步执行过滤器按钮,或者使用 Shift+F5。当将此操作切换为打开时,每个单步执行操作(单步跳过、单步跳入和单步返回)都将应用在用户首选项中定义的那组单步执行过滤器(请参阅窗口 > 首选项 > Java > 调试 > 单步执行过滤)。当调用单步执行操作时,在到达未过滤的位置或遇到断点之前,单步执行将继续。
运行至返回
在“调试”视图中选择堆栈帧。所选帧中的执行的当前行在“调试”透视图的编辑器中突出显示。
单击“调试”视图工具栏中的运行至返回按钮,或者按 F7 键。将继续执行,直到执行当前方法中的下一个返回语句,且执行会在下一个可执行行上暂挂。
运行至行
暂挂线程时,可以继续执行,直到执行指定的行为止。这是在某行暂挂执行而不用设置断点的简便方法。
将光标放在想要程序运行的行上。
从弹出菜单中选择运行至行,或者使用 Ctrl+R。程序将继续执行,而刚好在要执行的指定行之前暂挂。
有可能某行从来不会遇到,并且程序将不会暂挂。
断点和异常可导致线程在到达指定行之前被暂挂。
检查值
当选择了堆栈帧时,可以在“变量”视图的该堆栈帧中看到可视变量。
“变量”视图显示基本类型的值。可通过展开复杂变量以显示它们的成员来检查复杂变量。
对表达式求值
当 VM 暂挂线程(由于遇到断点或单步执行代码)时,可以在堆栈帧的上下文中对表达式进行求值。
选择要在其中执行求值的堆栈帧。对于变量和表达式视图的详细信息窗格,求值上下文将是所选择的变量。如果未选择任何变量,则所选择的堆栈帧将为上下文。
可以在下列区域中输入表达式和对表达式求值:
显示视图
表达式视图的详细信息窗格
变量视图的详细信息窗格
Java 编辑器(当它正在显示源并且不是只读的时候)
选择要求值的表达式,并从上下文弹出菜单中选择显示、检查或执行。显示或检查求值的结果将显示在一个弹出窗口中。注意,执行不显示结果 - 只执行表达式。
可以通过单击弹出窗口的外部或按 Esc 来离开结果弹出窗口。通过按弹出窗口底部显示的键序列,可以将结果移至“显示”视图(如果选择了显示)或“表达式”视图(如果选择了检查)。例如,要将检查求值的结果移至“表达式”视图,按 CTRL-Shift-I。注意,当从“显示”视图使用显示操作时,结果将会写入“显示”视图而不是弹出窗口中
注意:在已经手工暂挂的线程中不能执行求值。
远程调试
Java 调试器的客户机/服务器设计允许您从网络中的计算机启动 Java 程序并从运行平台的工作站调试该程序。当为不能主管开发平台的设备开发程序时,这一点尤其有用。当在专用机器(如 web 服务器)上调试程序时,这一点也很有用。
注意:要使用远程调试,必须使用支持此功能的 Java VM。
要以远程方式调试程序,必须能够在远程机器上以调试方式启动程序,以便它将等待来自调试器的连接。用于启动程序和连接调试器的特定技术是特定于 VM 的。基本步骤如下:
确保正在以可用的调试信息构建 Java 程序。(可以从窗口 > 首选项 > Java > 编译器控制这些属性)。
构建 Java 程序后,将其安装到目标计算机。这涉及将 .CLASS 文件或 .JAR 文件复制到远程计算机上的适当的位置。
在远程计算机上调用 Java 程序,并使用适当的 VM 自变量来指定调试方式和调试器的通信端口。
使用远程启动配置来启动调试器并指定远程计算机的地址和端口。
应该从 VM 供应商那里获取用来设置用于进行远程调试的启动配置的更特定指示信息。
使用远程 Java 应用程序启动配置
远程 Java 应用程序启动配置应在调试正在远程 VM 上运行的应用程序时使用。因为应用程序是在远程系统上启动的,所以启动配置不会指定有关 JRE、程序自变量或 VM 自变量的普通信息。然而,提供了有关连接至应用程序的信息。
要创建远程 Java 应用程序启动配置,执行下列操作:
从工作台菜单栏中选择运行 > 调试...(或者从调试工具栏按钮的下拉菜单中选择调试...)来显示“启动配置”对话框。
在左边的配置类型列表中选择远程 Java 应用程序。
单击新建按钮。于是就创建了新的远程启动配置,并显示三个选项卡:连接、源和公共。
在连接选项卡的项目字段中,输入或进行浏览来选择用作启动的参考的项目(用于源查找)。不需要指定项目。
在连接选项卡的主机字段中,输入 Java 程序正在其中运行的主机的 IP 地址或域名。
如果程序与工作台在同一台机器上运行,则输入 localhost。
在连接选项卡的端口字段中,输入远程 VM 正在其中接受连接的端口。通常,启动远程 VM 时就要指定此端口。
允许终止远程 VM 标志是一个切换开关,它确定是否在调试器中启用终止命令。如果想要能够终止正连接至的 VM,则选择此选项。
单击调试。启动将尝试连接至位于指定地址和端口的 VM,而结果显示在“调试”视图中。如果启动程序无法连接至位于指定地址的 VM,则会出现错误消息。
指定应当从 VM 供应商处获取的用于设置远程 VM 的指示信息。
与 VM 断开连接
要与使用“远程 Java 应用程序”启动配置所连接至的 VM 断开连接:
在“调试”视图中,选择启动。
单击视图的工具栏中的断开连接按钮。与 VM 的通信终止,而远程 VM 中的所有线程仍继续进行。尽管远程 VM 继续执行,但调试会话现在终止了。
eclipse调试详解相关推荐
- Linux Bash命令关于程序调试详解
转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...
- Eclipse Debug调试详解
目录 一.debug透视图: 1.进入方式:右上角点击添加框,选择"臭虫",再点击小虫. 2.debug调试下的一些常用一些透视图,如果没有自行添加,windows---> ...
- eclipse版本详解以及下载安装步骤及启动eclispe报错整理
一.eclispe版本详解 本段内容转载自:https://www.cnblogs.com/chenmingjun/p/8404628.html 1.eclipse版本代号一览表 Eclipse的设计 ...
- PyCharm中Debug模式进行调试详解
参考博文: Pycharm Debug调试(纯干货)_小麦粒的博客-CSDN博客 pycharm下debug详解_诺一呦-的博客-CSDN博客_pycharm的debug怎么用 Pycharm Deb ...
- 【Android】 Android中Log调试详解
LOG类: public final class Log extends Object java.lang.Object android.util.Log Constants int ASSERT ...
- Eclipse中断点调试详解
小编是刚学习Java两个月,在学习视频中看到老师玩断点6到飞起,自己也就各种查资料,实施并总结了一下断点的调试. 找到需要设置断点的位置 你可能会问,我怎么知道在哪设置断点呢? 如果你实在不知道在哪设 ...
- Eclipse配置详解(包括智能提示设置、智能提示插件修改,修改空格自动上屏、JDK配置、各种快捷键列表……)...
Eclipse编辑器基本设置 1.添加行号 在边缘处右键 2.改字体 字体的一般配置 3.去掉拼写错误检查 4.Java代码风格 代码格式化 Ctrl + Shift + F 之后点击右边的New按钮 ...
- VS2017远程调试详解(内网、外网)
远程调试可分为:附加到进程与远程Windows调试器两种方式 两种方式区别可简单理解为: (1)附加到进程:需将本地编译完成后的exe与相关dll拷贝至目标电脑:此方式前提被调试软件可正常打开 (2) ...
- Java本地远程服务器debug调试详解
日常我们debug是经常用的,但是本地还好说,远程debug就有点难度,而且有时候必须要在预演,测试环境的服务器去debug,举个例子,需要https,公网,域名之类的,测试服务器这些有些是配置的,但 ...
最新文章
- IDEA配置Tomcat出现404,The requested resource is not available终极超详细解决方案
- iphone xh5打开ppt预览_教你如何用iPhone拍全景照片
- VS2017/2019 F12无法导航到定义
- ORACLE DATAGURARD配置手记
- mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)
- python里的英文歌叫什么_一首英文歌名最后是onshould
- Rust : Json Web Token
- DSP程序nbsp;调试总结
- 空窗2年,中文系萌妹拿下39W测试岗,还和面试官约上了烧烤?!
- #1.4股市预测数学的产生原因
- 新员工来到项目组的愿景_为您的项目设定愿景
- 【数电笔记】加法器、减法器
- Word2Vec原理简单解析
- 18级计算机应用基础期中考试题,早安正能量 励志新开始---法学与社会学学院18级新生开展早自习活动...
- NPN和PNP 的电流方向 、大小关系 、电压偏置
- [OpenWrt] reset按键处理流程(hotplug)
- 路飞学城详细步骤 part1
- 网页设计中色彩搭配原则及方法
- IDEA同款数据库管理工具,提示太全了,用起来贼香!
- selenium之chromedriver与chrome版本映射表(最新版!)
热门文章
- python图形缝隙填充_Python,如何缝合图像哪些重叠区域?
- python中read table_Python Pandas pandas.read_sql_table函数方法的使用
- 判断exception类型_C++核心准则T.44:使用函数模板推断类模板参数类型(如果可能)...
- ocp 工资_【中秋节加班费】2016中秋节加班工资怎么算,中秋节放假加班费的计算方法...
- java求阶乘不内存溢出_No_16_0321 Java基础学习第二十一天
- 上如何刻字_如何用简单的方法在零件表面刻字:这里就有你想要的答案
- oracle批量更新数据从另一表_常用SQL系列之(五):多表和禁止插入、批量与特殊更新等...
- cad四边形展开lisp_批量绘制四边形 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
- c#启动mysql数据库服务器_C#启动停止SQL数据库服务
- ant Table td 溢出隐藏(省略号)