eclipse myeclipse debug详解
原文地址:http://guoliangheyuqin.iteye.com/blog/1634184
不知道大家是不是跟我一样 刚开始学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.