进入debug模式,设置断点,然后运行程序到断点

[1]快捷键(F8)直接执行程序。

[2]快捷键(F5)单步执行程序,遇到方法时进入。

[3]快捷键(F6)单步执行程序,遇到方法时跳过。

[4]快捷键(F7)单步执行程序,从当前方法跳出。

若要改变变量的值,可以右击变量,在弹出的菜单中选择[change variable

value],弹出修改画面。改变其值后,按下ok键即可。这时,变量的值就改为修改后的值了。

若要检查代码段是否正确,可以选择一句或一段代码,右键单击在弹出的菜单中选择Inspect项,这时,代码的执行结果就显示在Expressions窗口中。

在调试时出现source not

find的提示信息,只要将window->preferences->tomcat->source

path中相关的工程选中即可.

1、在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上。

2、点击那个虫子样子的按钮,或者右键单击该程序,选择debug as -> java

application

3、按F5就是一层层深入的debug相当于剥葱样,按F6就是一步步debug,不理会深层次运作,按F7就是不管当前位置有多深,都跳转到断点设置的那一层代码,按F8就是停止debug,运行完程序

另,在debug时,会有很多有用信息显示在debug框里面,需要自己实践,鼠标移到变量上时会有当前变量的属性值

Eclipse断点调试

Eclipse 的断点调试

在debug as application时Debug框上会有一些按扭,例如:

suspend,step into ,step over,step return,drop to frame,use step

filters/step debug

他们是干什么用的,怎样使用?

本地调试

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

继续执行,但调试会话现在终止了。

java单步跳入单步跳过_Eclipse 单步调试相关推荐

  1. 单步跳入没有跳入源码_我如何抛弃旧操作系统并跳入Linux

    单步跳入没有跳入源码 大约一年前,我在Twitter上看到了一篇文章,< 抛弃Windows:戴尔XPS 13上的Ubuntu Linux的2周> ,由福布斯资深技术作家Jason Eva ...

  2. 2022-01-19:青蛙过河。 一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。 给你石子的位置列

    2022-01-19:青蛙过河. 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有). 青蛙可以跳上石子,但是不可以跳入水中. 给你石子的位置列 ...

  3. 微信跳一跳高分系列四:一个 JAVA 版开源的微信跳一跳辅助工具

    基于前三篇文章,我们一起来制作一个自动化工具,解放劳动力,通过机器自动完成跳一跳 wechat-jump-helper 一款JAVA版开源的微信跳一跳小程序辅助工具 传送门一:wechat-jump- ...

  4. ajax走到error_jQuery中ajax 跳入error的原因总结

    一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2": ...

  5. java 跳表_跳表 skiplist

    最初知道跳表(Skip List)是在看redis原理的时候,redis中的有序集合使用了跳表作为数据结构.接着就查了一些资料,来学习一下跳表.后面会使用java代码来实现跳表. 跳表简介 跳表由Wi ...

  6. 自定义launcher预置widget无法跳入app,显示无法添加微件问题

    1.将widget预置到launcher首页的布局中去,每一个widget都要进行如下操作,bindAppWidgetIdIfAllowed不可缺少. int appWidgetId = appWid ...

  7. STM32跳入HardFault Handler中断分析

    为什么80%的码农都做不了架构师?>>>    ARM芯片STM32出现HardFault Handler硬件中断一般有两种情况: 访问越界导致的Acess Violation或者内 ...

  8. debug - UITextField 输入完跳入下一field,按钮变化

    textField .h 里创建对象 @interface ***Controller : UIViewController { UITextField *phoneNumber; UITextFie ...

  9. 女研究生因压力大欲跳海轻生 民警跳入冰冷海水中救人

    图为救援现场 舟山公安供图 摄 图为救援现场 舟山公安供图 摄 中新网舟山1月18日电(记者 李佳赟 通讯员 支奕 林昉哲)一名年轻女子欲跳海轻生,生死一瞬间,浙江省舟山市嵊泗县公安局菜园派出所民警毅 ...

最新文章

  1. python的日志库logging,真香!!!
  2. Linux的一些基本命令与MySQL索引
  3. centos ffmpeg m3u8切片相关
  4. JUC并发编程十 并发架构--Unsafe
  5. 【数据库】Redis是什么
  6. 2019手卫生定义_2021年卫生资格考试部分科目大纲和教材变化归总!
  7. Linux卸载MariaDB
  8. git add -A 、git add -u 、 git add . 三种区别
  9. 代码之美——Doom3源代码赏析
  10. mcldownload文件夹_《我的世界》中国版游戏空间精简教程 多余文件删除方法
  11. Linux无法下载GCC
  12. Theano框架学习
  13. 分区助手扩大c盘后自动修复_分区助手怎么扩大C盘?分区助手扩大C盘的方法
  14. 电脑ps计算机磨皮,入门:PS最简单的磨皮方法
  15. debian apache2不执行php,Debian下Apache2的安装与配置
  16. 存储微博内容小技巧--印象笔记
  17. uniapp 自定义相机人脸和人脸识别
  18. c++实现sqrt函数功能
  19. 家电行业售后服务管理解决方案
  20. 自定义Group,解决Group setVisibility后,子View再次设置setVisibility无效的问题

热门文章

  1. 局域网内的计算机拒绝访问,win10系统局域网拒绝访问的解决方法
  2. 程序猿生存定律-六个程序猿的故事(2)
  3. 第世界上第一代电子计算机,第一代电子计算机
  4. mysql utf8和gbk的区别_MySQL字符集 GBK、GB2312、UTF8区别
  5. 《江南百景图》为什么火了?和主创团队聊完之后,我跪了
  6. flash读写导致死机问题分析
  7. Java如何模拟鼠标键盘输入
  8. imx6ul查看系统资源IO电平(基于周立功A6G2C)
  9. 运动估计和最佳匹配块搜索算法
  10. 电影中装逼的滚动屏幕