java设置断点_Eclipse设置断点调试的方法
作为开发人员,掌握开发环境下的调试技巧十分有必要。去年就想把关于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设置断点调试的方法相关推荐
- 快捷键Java模板注释_eclipse 设置注释模板& 调出注释快捷键
1,设置注释模板 点击Windows(窗口)->Preferences(首选项)->Java->Code Style(代码样式)->Code Templates(代码模板) 然 ...
- eclipse java代码颜色设置颜色设置颜色设置颜色设置颜色_eclipse设置(颜色,字体等)...
1.设置jsp中js块的颜色: 选择Preferences菜单项.在弹出的窗口的左侧树形菜单依次选择:MyEclipse.Files and Editors.Javascript.Editor.Syn ...
- java Ext安装_eclipse中ext插件安装方法
今天我在网上找ext eclipse plugin,找咯一会终于让我找到咯,但是全英文的,现在我把它翻译成中文,也是我刚好的经验! 1.在eclipse菜单中找到这个路径:Help → Softwar ...
- SAP--DEBUG--外部断点的设置
在ABAP开发中不仅可以在SAP系统中对已知的程序进行设置断点(内部断点)来调试,还可以通过设置使SAP与外部调用系统(如:PLM.SRM.OA等)进行调试测试,前提是系统之间有相互的数据交互.实例如 ...
- OD消息断点的设置方法
一.条件断点: 使用方法(如): 在当前行按[Shift+F2]键->条件断点(这个不太好用,因为程序BUG偶尔失效). 在当前行按[Shift+F4]键->条件记录断点(只要设置上条件语 ...
- Fiddler基础教程 - 3. 抓包 | 设置断点 | 捕获设置 | 重定向AutoResponder | 过滤Filters
本来想自己写的,结果翻到一系列的博客,发现有前辈总结的太好了,转载过来,当知识点查询一下.外加自己总结的一些经验,我总结的放在了最后面. 原地址:https://www.cnblogs.com/sjl ...
- gdb 笔记(03)— 某一行设置断点、为函数(单个唯一函数、多个同名函数、使用正则)设置断点、设置条件断点、设置临时断点
断点 breakpoint,即为了调试的需要,在程序中设置一些特殊标志,代码执行到这些具有特殊标志的位置时会暂停.一旦程序暂停,我们就可以查看或者修改程序运行的一些信息,比如内存信息.堆栈信息等,并且 ...
- Fiddler对数据包的拦截(打断点、设置断点)、改包、伪造(构造)、自动响应
一.应用 定位bug:界定bug是由前端产生的,还是后端产生的.可以是两种策略: 1,抓包--抓取请求或者响应的数据包 2,改包--修改请求或者响应的数据包 使用Fiddler抓包,查看前端发送的请求 ...
- eclipse不进入断点_Eclipse 调试中不支持运行到断点问题
引用 eclipse debug URLClassPath.getLoader(int) file 结果在这个地方 [url] http://www.eclipse.org/forums/index ...
最新文章
- mysql中文无法显示
- mybatis学习笔记(7)-输出映射
- 在使用postman中操作api接口测试403解决方法
- Vue-员工管理系统
- SqlServerException:拒绝对表对象的select,insert权限解决(新建账号导致的问题)
- 设计模式之_Iterator_03
- 在同一页面显示多个JavaScript统计图表
- STM32F1笔记(十)PWM
- JAVA vo pojo javabean dto区别
- 用nohup重定向python输出到文件不成功的解决办法
- android 应用创建桌面快捷方式
- Maven详解及相关操作
- 杨森翔的书法(对联、斗方、圆光)
- android自定义对号,Android-手势识别(普通手势识别:上 下 左 右 ;自定义手势识别:对号,错号 等)...
- 流年里写给30岁的自己
- android rgb接口,Android RGB颜色查询对照表
- sql grop by having order by 的用法
- IndProp章节中pumping lemma的证明
- K210入门必看(MAIX DOCK)(一)
- 小米全国高校编程大赛 正式赛题解
热门文章
- 【每天学习一点新知识】网络安全--拒绝服务攻击
- Spring简单实现打印机功能-附完整代码
- ThinPrint与ThinClient
- 遍历图像 找最小外接矩形 matlab,2018a版本MatLab利用regionprops函数获取图片中物体轮廓最小外接矩形...
- 智能温室种植作物可实现全季节全天候生长
- memcached noreply 和tcp Nagle
- Linux C 程序性能测试 valgrind callgrind分析函数耗时、perf分析函数CPU消耗
- 计算机地址栏乱跳,电脑页面会自己乱晃
- Word控件Spire.Doc 【其他】教程(5):在 Word 中嵌入媒体文件
- css text 大小统一样式,css-iPhone上的字体大小呈现不一致