作为开发人员,掌握开发环境下的调试技巧十分有必要。去年就想把关于Eclipse断点调试总结下了,由于对时间的掌控程度仍需极大提高,结果拖到今年才写了此篇博文难过。关于java调试技术还有很多,如Java Debug Interface等,依据具体项目的需要,还有很多值得去研究和学习的。该博文仅就Eclipse断点调试技巧做下总结,不足够的地方还请大牛们指点。

1  Debug视图

1.1 线程堆栈视图

线程堆栈视图表示当前线程的堆栈,从中可以看出在运行哪些代码,并且整个调用过程,以及代码行号。分别介绍一下这几个按钮的含义。从左至右分别为:

1.表示当前实现继续运行直到下一个断点,快捷键为F8。

2.表示打断整个进程

3.表示进入当前方法,快捷键为F5。

4.表示运行下一行代码,快捷键为F6。

5.表示退出当前方法,返回到调用层,快捷键为F7。

6、表示返回当前线程堆栈的起始处开始执行。

1.2  变量视图

1.为变量名视图,显示当前代码行中所有可以访问的实例变量和局部变量

2.显示所有的变量值

3.可以通过该窗口来改变变量值

1.3 断点视图

1.显示所有断点

2. 将当前窗口1中选中的端口失效,再次点击启用。

3.异常断点

经常遇见一些异常,然后程序就退出来了,要找到异常发生的地方就比较难了,还好可以打一个异常断点。到了异常的地方,当前线程就挂起。

1.4 表达式视图

表达式视图是Debug过程中较为常用的一个视图,可以对自己的感兴趣的一些变量进行观察,也可以增加一些自己的表达式,也可以查看一行代码的运行结果。1.表达式2. 点击此可以新增一个表达式。

2 断点种类

2.1 方法断点

断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。方法断点是打在方法的入口处。

方法断点的特别之处在于它可以打在 JDK的源码里,由于 JDK 在编译时去掉了调试信息,所以普通断点是不能打到里面的,但是方法断点却可以,可以通过这种方法查看方法的调用栈。

2.2  条件断点

条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。

在断点处点击鼠标右键,选择最后一个"Breakpoint Properties"

断点属性中有三个选择,启用“Enable”,Hit Count和Conditional中依据我们的需要来选择。

1)Hit Count 是指定断点处的代码段运行多少次,最典型的就是循环,如果要让一个循环执行10次就线程挂起,则指定Hit Count值为10,那么当前的循环执行到第九次的时候就会挂掉。

2)Conditional,顾名思义,就是条件判断,例如我们需要循环变量i==10时,线程挂起,则条件设定为i==10,选择Suspend when "true"。

那如果上面的Hit Count和Conditional都选择的话,如果表达式和值设置不合理则会实效。如果选择Suspend when value changes,那么可能在Conditional在变量值发生改变的时候就挂起。

2.3 变量断点

断点不仅能打在语句上,变量也可以接受断点,

上图就是一个变量的打的断点,在变量的值初始化,或是变量值改变时可以停止,当然变量断点上也是可以加条件的,和上面的介绍的条件断点的设置是一样的。呵呵,这部分我没去实践,找不到在哪里设置~

2.4 修改变量值

修改变量值的情况适用于代码停在断点处,但是传过来的值不正确,那么可以通过修改这个变量值,保证代码走正确的流程;或者是说有一个异常分支老是进不去,能不能调试时改一下条件,看一下异常分支代码是否正确。

在Debug 视图的 Variables 小窗口中,我们可以在变量上右键,选择"Change Value..." 在弹出的对话框中修改变量的值。

或是在下面的值查看窗口中修改,保用Ctr+S 保存后,变量值就会变成修改后的新值了。

2.5 重新调试

这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用的开始处。回退时,请在需要回退的线程方法上点右键,选择 "Drop to Frame"

关于断点调试,还有异常断点等,已在Dubug视图中提过,还有远程调试的。因为自己没试过,所以期待下次的博文。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java设置断点_Eclipse设置断点调试的方法相关推荐

  1. 快捷键Java模板注释_eclipse 设置注释模板& 调出注释快捷键

    1,设置注释模板 点击Windows(窗口)->Preferences(首选项)->Java->Code Style(代码样式)->Code Templates(代码模板) 然 ...

  2. eclipse java代码颜色设置颜色设置颜色设置颜色设置颜色_eclipse设置(颜色,字体等)...

    1.设置jsp中js块的颜色: 选择Preferences菜单项.在弹出的窗口的左侧树形菜单依次选择:MyEclipse.Files and Editors.Javascript.Editor.Syn ...

  3. java Ext安装_eclipse中ext插件安装方法

    今天我在网上找ext eclipse plugin,找咯一会终于让我找到咯,但是全英文的,现在我把它翻译成中文,也是我刚好的经验! 1.在eclipse菜单中找到这个路径:Help → Softwar ...

  4. SAP--DEBUG--外部断点的设置

    在ABAP开发中不仅可以在SAP系统中对已知的程序进行设置断点(内部断点)来调试,还可以通过设置使SAP与外部调用系统(如:PLM.SRM.OA等)进行调试测试,前提是系统之间有相互的数据交互.实例如 ...

  5. OD消息断点的设置方法

    一.条件断点: 使用方法(如): 在当前行按[Shift+F2]键->条件断点(这个不太好用,因为程序BUG偶尔失效). 在当前行按[Shift+F4]键->条件记录断点(只要设置上条件语 ...

  6. Fiddler基础教程 - 3. 抓包 | 设置断点 | 捕获设置 | 重定向AutoResponder | 过滤Filters

    本来想自己写的,结果翻到一系列的博客,发现有前辈总结的太好了,转载过来,当知识点查询一下.外加自己总结的一些经验,我总结的放在了最后面. 原地址:https://www.cnblogs.com/sjl ...

  7. gdb 笔记(03)— 某一行设置断点、为函数(单个唯一函数、多个同名函数、使用正则)设置断点、设置条件断点、设置临时断点

    断点 breakpoint,即为了调试的需要,在程序中设置一些特殊标志,代码执行到这些具有特殊标志的位置时会暂停.一旦程序暂停,我们就可以查看或者修改程序运行的一些信息,比如内存信息.堆栈信息等,并且 ...

  8. Fiddler对数据包的拦截(打断点、设置断点)、改包、伪造(构造)、自动响应

    一.应用 定位bug:界定bug是由前端产生的,还是后端产生的.可以是两种策略: 1,抓包--抓取请求或者响应的数据包 2,改包--修改请求或者响应的数据包 使用Fiddler抓包,查看前端发送的请求 ...

  9. eclipse不进入断点_Eclipse 调试中不支持运行到断点问题

    引用 eclipse debug  URLClassPath.getLoader(int) file 结果在这个地方 [url] http://www.eclipse.org/forums/index ...

最新文章

  1. mysql中文无法显示
  2. mybatis学习笔记(7)-输出映射
  3. 在使用postman中操作api接口测试403解决方法
  4. Vue-员工管理系统
  5. SqlServerException:拒绝对表对象的select,insert权限解决(新建账号导致的问题)
  6. 设计模式之_Iterator_03
  7. 在同一页面显示多个JavaScript统计图表
  8. STM32F1笔记(十)PWM
  9. JAVA vo pojo javabean dto区别
  10. 用nohup重定向python输出到文件不成功的解决办法
  11. android 应用创建桌面快捷方式
  12. Maven详解及相关操作
  13. 杨森翔的书法(对联、斗方、圆光)
  14. android自定义对号,Android-手势识别(普通手势识别:上 下 左 右 ;自定义手势识别:对号,错号 等)...
  15. 流年里写给30岁的自己
  16. android rgb接口,Android RGB颜色查询对照表
  17. sql grop by having order by 的用法
  18. IndProp章节中pumping lemma的证明
  19. K210入门必看(MAIX DOCK)(一)
  20. 小米全国高校编程大赛 正式赛题解

热门文章

  1. 【每天学习一点新知识】网络安全--拒绝服务攻击
  2. Spring简单实现打印机功能-附完整代码
  3. ThinPrint与ThinClient
  4. 遍历图像 找最小外接矩形 matlab,2018a版本MatLab利用regionprops函数获取图片中物体轮廓最小外接矩形...
  5. 智能温室种植作物可实现全季节全天候生长
  6. memcached noreply 和tcp Nagle
  7. Linux C 程序性能测试 valgrind callgrind分析函数耗时、perf分析函数CPU消耗
  8. 计算机地址栏乱跳,电脑页面会自己乱晃
  9. Word控件Spire.Doc 【其他】教程(5):在 Word 中嵌入媒体文件
  10. css text 大小统一样式,css-iPhone上的字体大小呈现不一致