eclipse myeclipse debug详解

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

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

所以用MyEclipse 一定要学好debug

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


2 设置断点:设置断点

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

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

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

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

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



 

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

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


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




 

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




 条件断点

一 旦了解到错误发生的位置,您可能想要知道在程序崩溃之前,程序在做什么。
一种方法就是单步执行程序的每行语句。一次执行一行,直到运行到可疑的那
行代码。 有时,最好只运行一段代码,在可疑代码处停止运行,在这个位置检
查数据。还可以声明条件断点,它在表达式值发生变化时触发
。除此之外,在输入条件表达式时,也可以使用代码帮助。
设置条件断点触发器


 计算表达式的值
为了在 Debug 透视图的编辑器中计算表达式的值,选择设置了断点的那行代码,
在上下文菜单中,通过 Ctrl+Shift+I 或右键单击您感兴趣的变量(参见图
7)选择 Inspect 选项。在当前堆栈框架的上下文中会计算表达式的值,在
Display 窗口的 Expressions 视图中会显示结果。
图 7. 通过 Inspect 选项计算表达式的值



 

剪切活动代码

Display 视图允许您以剪切类型的方式处理活动代码 要处理一
个变量,在 Display 视图中输入变量名即可,视图会提示您一个熟悉的内容助
手。



当 调试器停止在一个断点处时,您可以从 Debug 视图工具栏
选择 Step Over 选项,继续调试器会话。该操作会越过高亮显示的那行代码,
继续执行同一方法中的下一行代码(或者继续执行调用当前方法的那个方法的
下一行代码)。执行上一 步后发生改变的变量会用某种颜色高亮显示(默认是
黄色)。颜色可以在调试首选项页面中改变。


  要在 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.

猜你喜欢

转载自guoliangheyuqin.iteye.com/blog/1634184