Eclipse断点种类
本文是Eclipse调试(1)——基础篇 的提高篇。分两个部分:
1) Debug视图下的3个小窗口视图:变量视图、断点视图和表达式视图
2) 设置各种类型的断点
变量视图、断点视图和表达式视图
1. variable:
变量视图显示debug过程中程序中出现的所有的变量以及其值。我们也可以通过该视图手动设置变量的value。手动设置变量值的作用在于,当debug到该变量处时,没有得到我们预期的值,为了能让我们的debug按照预期的方式继续走下去(如变量满足一定条件才能走到某一个特定的分支中去),我们可以设置变量值为预期的值,达到测试目的。
2. Breakpoints:
断点视图显示程序中的所有断点。我们可以通过这个视图设置断点的类型,挂断条件等。还可以选择skip哪些断点以及删除断点。本文之后的部分将对断点的设置做更详细的讲解。
3. Expressions:
表达式视图可以增加一些自己感兴趣的表达式,观察其值。也可以选中表达式,使用“Ctrl + Shift +i”快捷键在debug代码中查看其值,或者右键–>Inspect。
断点设置
1. 普通行断点
在代码的某一行最左侧双击就设置了一个普通行断点。程序debug运行到该行就会在此断点处暂停。删除该断点可以再次双击,也可以在断点视图中删除。在断点视图中也可以设置是否跳过断点。
2. 行断点-条件断点(Hit Count Conditional)
条件断点有两种:Hit Count和Conditional。设置方法为:①可以在断点视图中选定某个断点,然后在视图下方设置;②也可以选中某个断点后右击–>Breakpoint Properties…中设置。
Hit Count断点适用于测试循环时,在循环到第N次此断点处时,程序停止。Hit Count断点只会停止一次。
Conditional断点是设置一个条件表达式,设置当该条件表达式为true或者条件表达式的值改变时程序停止。Conditional断点只要条件满足就会停止。
3. 异常断点
异常断点可以通过Breakpoints视图的Add JavaException Breakpoint按钮添加,在方法抛出指定的异常的时候会触发中断。可选项包括Caught locations、Uncaught locations、Subclass of this exception分别对应在代码中捕获了该异常时、未捕获该异常时、抛出的异常为当前Exception的子类时触发中断。
需要注意的是Eclipse默认会在抛出未捕获异常时自动中断,所以取消Uncaught locations时看起来没有任何效果,抛出的异常仍然会触发中断。可以通过window–>preferences–>Java–>debug取消Suspend execution on uncaught exceptions选项来使Uncaught locations生效。但不建议这样做。
4. 方法断点
方法断点打在方法声明的第一行处。默认情况下在进入该方法时线程中断,可以选择Entry或Exit选择在方法进入或方法退出时中断。
5. 监视断点(watchpoint)
监视断点是设置在类的实例变量或者静态变量上的。断点的条件有Access、Modification、Hit count。其中,Access和Modification必须至少选择一个。Hit count是可选的。当选择Access或Modification时,每次变量被访问或者变量都修改,在被访问或修改处都会中断。如果还选择了Hit count,则会在变量被访问或者修改的第N次中断一次。
单步过滤
单步过滤的场景是我们在使用F5来跟到某个方法内部的时候,经常会跟到一些我们确定不需要看的方法内部。
this.getTradeDetail(uid, itemStr.subString(0,5))
比如这行代码,想F5进入getTradeDetail内部,会首先执行itemStr.subString方法,会先进入subString方法,而这方法是jdk的String方法,确定没问题,不需要关心,单步过滤就是跳过这些我们想忽略的方法直接到目标方法内部的一种debug技巧。
在Window > PreferencesJava > Debug > Step Filtering 设置过滤器, 可以选择需要过滤掉的包和类。同时要确保你在debug视图中启用了单步过滤,如下图。这样在使用单步调试的时候,就会使用到这个过滤功能。
上图是过滤器配置,典型的就是把jdk的一些类和包配置过滤。下图是要在debug时候开启单步过滤,否则不生效。
显示逻辑结构
显示逻辑结构按钮可以让变量以更好的逻辑结构展示出来,提高可读性。如下图所示:
Eclipse断点种类的更多相关文章
- Eclipse断点调试
转自:http://blog.csdn.net/maritimesun/article/details/7815903 作为开发人员,掌握开发环境下的调试技巧十分有必要.去年就想把关于Eclipse断 ...
- 【转载】Eclipse 断点调试
作为开发人员,掌握开发环境下的调试技巧十分有必要.去年就想把关于Eclipse断点调试总结下了,由于对时间的掌控程度仍需极大提高,结果拖到今年才写了此篇博文.关于Java调试技术还有很多,如Jav ...
- eclipse 断点调试方法
1 Debug视图 1.1 线程堆栈视图 线程堆栈视图表示当前线程的堆栈,从中可以看出在运行哪些代码,并且整个调用过程,以及代码行号.分别介绍一下这几个按钮的含义.从左至右分别为: 1.表示当前实现继 ...
- 详解Eclipse断点
原文链接:http://www.blogjava.net/jiangshachina/archive/2011/11/20/364367.html 大家肯定都用过Eclipse的调试的功能,在调试的过 ...
- 转:详解Eclipse断点
详解Eclipse断点(原) 详解Eclipse断点 大家肯定都用过Eclipse的调试的功能,在调试的过程中自然也无法避免要使用断点(breakpoint),但不知是否对Eclipse中各类断点都有 ...
- eclipse 断点找到同名的其它类
转载自Eclipse断点进入另一个项目的同名Java文件中(http://tunps.com/p/11789.html) eclipse 断点找到同名的其它类 A和B是两个相同的项目,A一直本地,B是 ...
- Eclipse断点调试方法
1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止. 条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才 ...
- eclipse 断点使用深入技能
原文:http://blog.jobbole.com/26435/ 摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程 ...
- eclipse 断点调试快捷键
(1)Ctrl+M --切换窗口的大小(2)Ctrl+Q --跳到最后一次的编辑处(3)F2 --当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show Too ...
随机推荐
- 关于Angular+ngx-perfect-scrollbar自定义各大浏览器滚动条样式的解决方法
资料: http://manos.malihu.gr/jquery-custom-content-scroller/ (此项是结合Jquery使用的,在此并未采用) https://www.npmj ...
- CentOS7编译安装libc++和libc++abi
本文介绍了如何在CentOS 7中构建C++11构建环境 Clang的定制C++库是libc++(libcxx).然后,libcxx还需要一个ABI库,libc++abi(libcxxabi).不幸的 ...
- Hadoop之HDFS介绍
1. 概述 HDFS是一种分布式文件管理系统. HDFS的使用场景: 适合一次写入,多次读出的场景,且不支持文件的修改: 适合用来做数据分析,并不适合用来做网盘应用: 1.2 优缺点 优点: 高容错性 ...
- Problems to be upsolved
Donation 官方题解尚未看懂. comet oj contest15 双11特惠hard Mobitel Small Multiple 题解 为什么可以如此缩点? Candy Retributi ...
- 真理胜于一切 JAVA模拟表单提交
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- Linux系列(17)之系统服务
我们知道,在我们登陆Linux后,系统就为我们提供了很多服务,比如例行工作调度服务crond.打印服务.邮件服务等.那么这些服务是如何被启动的呢? 这个问题先放一下,接下来我们先了解一下Linux的启 ...
- react的状态管理
近两年前端技术的发展如火如荼,大量的前端项目都在使用或转向 Vue 和 React 的阵营, 由前端渲染页面的单页应用占比也越来越高,这就代表前端工作的复杂度也在直线上升,前端页面上展示的信息越来越多 ...
- Win10环境下,告别MarkdownPad,用Notepad++搭建编写md文档的环境
1. 为什么抛弃MarkdownPad 2 ? MarkdownPad坊间号称 Windows 环境下最好用的markdown编辑器-EXO me??? 博主入MarkdownPad 2 坑就是因为这 ...
- 基于C#实现与新大陆扫码枪通信
随着工业互联的发展,扫码枪在很多场合都有所应用,超市.商场以及一些智能工厂.今天主要讲如何通过C#实现与新大陆扫码枪(OY10)进行通信,对于扫码枪的配置,这里就不多说了,结合说明书就可以实现.这里值 ...
- django+pymysql搭建一个管理系统(一)
django+pymysql搭建一个管理系统(一) 后续进行代码更新,优化 一.程序架构 二.mysql表单创建 zouye库:存信息相关的 #班级表 create table classes( ci ...