java debug详解_MyEclipse Debug详解

不知道大家是不是跟我一样 刚开始学java时 不喜欢用Eclipse或Myeclipse中的debug调试程序。

但是debug是非常好用的调试工具。

所以用MyEclipse 一定要学好debug

1,在调试配置中设置项目的主 Java 类

42832532_1.jpg

2 设置断点:设置断点

在 启动应用程序进行调试时,Eclipse 会自动切换到 Debug 透视图。毫无疑

问,最常见的调试步骤是设置断点,这样可以检查条件语句或循环内的变量和

值。要在 Java 透视图的 Package Explorer 视图中设置断点,双击选择的源

代码文件,在一个编辑器中打开它。遍历代码,将鼠标放在可疑代码一行的标

记栏(在编辑器区域的左侧)上,双击即可设置断点。

42832532_2.jpg

现在,从 Run > Debug 菜单启动调试会话。最好不要将多条语句放在一行上,

因为会无法单步执行,也不能为同一行上的多条语句设置行断点。

视图中左侧空白处的箭头指示当前正在执行的行

42832532_3.jpg

还有一个方便的断点视图来管理所有的断点。

42832532_4.jpg

条件断点

一 旦了解到错误发生的位置,您可能想要知道在程序崩溃之前,程序在做什么。

一种方法就是单步执行程序的每行语句。一次执行一行,直到运行到可疑的那

行代码。 有时,最好只运行一段代码,在可疑代码处停止运行,在这个位置检

查数据。还可以声明条件断点,它在表达式值发生变化时触发

。除此之外,在输入条件表达式时,也可以使用代码帮助。

设置条件断点触发器

42832532_5.jpg

计算表达式的值

为了在 Debug 透视图的编辑器中计算表达式的值,选择设置了断点的那行代码,

在上下文菜单中,通过 Ctrl+Shift+I 或右键单击您感兴趣的变量(参见图

7)选择 Inspect 选项。在当前堆栈框架的上下文中会计算表达式的值,在

Display 窗口的 Expressions 视图中会显示结果。

图 7. 通过 Inspect 选项计算表达式的值

42832532_6.jpg

剪切活动代码

Display 视图允许您以剪切类型的方式处理活动代码 要处理一

个变量,在 Display 视图中输入变量名即可,视图会提示您一个熟悉的内容助

手。

当 调试器停止在一个断点处时,您可以从 Debug 视图工具栏 中

选择 Step Over 选项,继续调试器会话。该操作会越过高亮显示的那行代码,

继续执行同一方法中的下一行代码(或者继续执行调用当前方法的那个方法的

下一行代码)。执行上一 步后发生改变的变量会用某种颜色高亮显示(默认是

黄色)。颜色可以在调试首选项页面中改变。42832532_7.jpg

要在 Debug 视图中挂起执行线程,选择一个运行线程,单击 Debug 视图工具

栏中的 Suspend。 该线程的当前调用堆栈就会显示出来,当前执行的代码行

就会在 Debug 透视图中的编辑器中高亮显示。挂起一个线程时,将鼠标放在

Java 编辑器中的变量上,该变量的值就会在一个小的悬停窗口中显示出来。

此时,该线程的顶部堆栈框架也会自动选中,其中的可视变量也会在

Variables 视图中显示出来。您可以通过单击 Variables 视图中合适的变量名

来检查变量。

热交换错误修正:动态代码修正

如 果运行的是 Java 虚拟机(Java Virtual Machine,JVM)V1.4 或更高的版

本,Eclipse 支持一个叫做热交换错误修正(Hotswap Bug Fixing)的功能,

JVM V1.3 或更低的版本不支持该功能。该功能允许在调试器会话中改变源代

码,这比退出应用程序、更改代码、重新编译、然后启动另一个调试会话更好。

要利用该功能,在 编辑器中更改代码后重新调试即可。由于 JVM V1.4 与

Java 平台调试器架构(Java Platform Debugger Architecture,JPDA)兼容,

所以才有可能具备该功能。JPDA 实现了在运行的应用程序中替换经过修改的

代码的功能。如果应用程序启动时间较长或执行到程序失败的地方时间很长,

那么这一点特别有用。

如果在完成调试时,程序还没有全部执行一遍,在 Debug 视图的上下文菜单中

选择 Terminate 选项。容易犯的一个错误是在调试器会话中使用 Debug 或

Run,而不是 Resume。这样做会启动另一个调试器会话,而不是继续当前会话

1.Step Into (also F5) 跳入

2.Step Over (also F6) 跳过

3.Step Return (also F7) 执行完当前method,然后return跳出此method

4.step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点(设置

Filter:window-preferences-java-Debug-step Filtering)

5.resume 重新开始执行debug,一直运行直到遇到breakpoint。

例如 :A和B两个断点,debug过程中发现A断点已经无用,去除A断点,

运行resume就会跳过A直接到达B断点。

6.hit count 设置执行次数 适合程序中的for循环(设置 breakpoint view-右

键hit count)

7.inspect 检查 运算。执行一个表达式显示执行值

8.watch 实时地监视对象、方法或变量的变化

9.我们常说的断点(breakpoints)是指line breakpoints,除了line

breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method

breakpoint ,exception breakpoint.

10.field breakpoint 也叫watchpoint(监视点) 当成员变量被读取或修改时

暂挂

11.添加method breakpoint 进入/离开此方法时暂挂(Run-method

breakpoint)

12.添加Exception breakpoint 捕抓到Execption时暂挂(待续...)

断点属性:

1.hit count 执行多少次数后暂挂 用于循环

2.enable condition 遇到符合你输入条件(为ture\改变时)就暂挂

3.suspend thread 多线程时暂挂此线程

4.suspend VM 暂挂虚拟机

13.variables 视图里的变量可以改变变量值,在variables 视图选择变量点

击右键--change value.一次来进行快速调试。

14.debug 过程中修改了某些code后--〉save&build-->resume-->重新暂挂于

断点

15.resume 当debug调试跑出异常时,运行resume,重新从断点开始调试

16.如果一行有很多方法,

当第一次按F5键就跳入这一行第一个方法,F6一步一步调试,F7跳出这方法.

当第二次按F5键就跳入这一行第二个方法,F6一步一步调试,F7跳出这方法.

以此类推.想进入这一行第几个方法,就按几次F5和F7.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值