记得刚刚毕业的时候,自己连断点也不会打,当时还在用JCreate
,就连毕业设计也是用
System.out
找
Bug
的,想想真的很笨。开始工作后,一个星期过去了,在一个
1
、
2
百万行的系统中找
Bug
,我依然在用
System.out
,当时最痛苦的就是修改代码,每次找到疑似
Bug
,就输出一下,然后重启(那时也不知道代码热替换),直到有一天带我的导师发现了这样笨笨的调试
Bug
,才让我第一次认识了断点,也知道了代码修改完了可以进行热替换, 我这个中国教育的半牺牲品才算向美好生活迈进了一小步。
1、
条件断点
断点大家都比较熟悉,在Eclipse Java
编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。
条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。
在断点处点击鼠标右键,选择最后一个"Breakpoint Properties"
断点的属性界面及各个选项的意思如下图,
2、
变量断点
断点不仅能打在语句上,变量也可以接受断点,
上图就是一个变量的打的断点,在变量的值初始化,或是变量值改变时可以停止,当然变量断点上也是可以加条件的,和上面的介绍的条件断点的设置是一样的。
3、
方法断点
方法断点就是将断点打在方法的入口处,
方法断点的特别之处在于它可以打在
JDK的源码里,由于
JDK
在编译时去掉了调试信息,所以普通断点是不能打到里面的,但是方法断点却可以,可以通过这种方法查看方法的调用栈。
4、
改变变量值
代码停在了断点处,但是传过来的值不正确,如何修改一下变量值保证代码继续走正确的流程,或是说有一个异常分支老是进不去,能不能调试时改一下条件,看一下异常分支代码是否正确?
在Debug
视图的
Variables
小窗口中,我们可以看到
mDestJarName
变量的值为
"
F:\Study\eclipsepro\JarDir\jarHelp.jar
"
我们可以在变量上右键,选择"Change Value..."
在弹出的对话框中修改变量的值,
或是在下面的值查看窗口中修改,保用Ctr+S
保存后,变量值就会变成修改后的新值了。
5、
重新调试
这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用的开始处。
回退时,请在需要回退的线程方法上点右键,选择
"Drop to Frame"
6、
远程调试
用于调试不在本机上的程序,有两种方式,
1、本机作为客户端
2、本机作为服务端
使用远程调试的前提是服务器端和客户端的代码是一致的。
本机作为客户端
本机作客户端比较常用,需要在远端的服务器上的java程序在启动时打开远程调试开关,
服务器端需要加上虚拟机参数
1.5以前版本(1.5以后也可用):【-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 】
1.5及以上版本:【 -agentlib:jdwp=transport=dt_socket,server=y,address=8000】
F:\Study\eclipsepro\screensnap>java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar screensnap3.jar
连接时远程服务器时,需要在Eclipse中新建一个远程调试程序
这里有一个小地方需注意,连接上的时候貌似不能自动切换到Debug视图,不要以为本机的调试程序没有连接到服务器端。
本机作为服务端
同本机作为客户端相比,只需要修改一下“Connection Type”
这时Eclipse会进入到等待连接的状态
连接程序使用如下参数即可连接本机服务器,IP地址请用实现IP替换~~
【-agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000】
F:\Study\eclipsepro\screensnap>java -agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000 -jar screensnap3.jar
远程调试时本地的代码修改可同步到远程,但不会写到远程的文件里,也就是说本地修改会在下次启动远程程序时就没有了,不会影响到下次使用时的远程代码。
有关远程调试更详细点的介绍请参考【使用 Eclipse 远程调试 Java 应用程序】
好像漏了一个断点,异常断点,补一下。
7、异常断点
经常遇见一些异常,然后程序就退出来了,要找到异常发生的地方就比较难了,还好可以打一个异常断点,
上图中我们增加了一个NullPointException的异常断点,当异常发生时,代码会停在异常发生处,定位问题时应该比较有帮助。
7、EXpressions
通过添加表达式 Expressions 来查看各变量的值。 点击右边 “X+Y=?”(Add a new watch expression) 符号。
点击OK 可以查看结果如下:(查看结果相当方便吧,个人感觉比变量窗口更有用!)
分享到:
相关推荐
"MyEclipse 调试技巧" MyEclipse 作为一款功能强大的集成开发环境(IDE),提供了多种调试方式来帮助开发者更好地 debug 代码。下面我们将详细介绍 MyEclipse 中的调试技巧及相关知识点。 调试模式设置 在 ...
6. 调试技巧:在Myeclipse中,有多种调试技巧,包括断点设置、单步调试、变量查看、方法调试等。这些技巧可以帮助开发者快速地调试代码,了解代码的执行过程和结果。 7. Eclipse调试:在Eclipse中,可以使用调试...
### MyEclipse Debug(MyEclipse 调试程序) #### 概述 MyEclipse是一款功能强大的集成开发环境(IDE),特别适用于Java EE应用程序的开发。它基于Eclipse平台,并在此基础上增加了诸多实用功能,例如代码编辑器、...
### MyEclipse 使用技巧整理 在进行软件开发的过程中,选择合适的集成开发环境(IDE)能够极大地提高工作效率。MyEclipse 是一款基于 Eclipse 的 Java EE 开发工具,它提供了丰富的功能来帮助开发者更高效地完成...
《MyEclipse使用技巧深度解析》 MyEclipse是一款强大的Java集成开发环境,深受广大开发者喜爱,尤其在企业级应用开发中占据重要地位。本文将深入探讨MyEclipse的使用技巧,帮助用户提升开发效率,优化开发体验。 ...
以下是一些关于MyEclipse的使用技巧,旨在帮助你更高效地利用这款工具。 1. **快速启动项目**:在创建新项目时,MyEclipse提供了多种模板,如Java项目、Web项目、动态Web项目等。只需选择合适的模板,填写项目名,...
### MyEclipse使用技巧 #### 一、简介 MyEclipse是基于Eclipse IDE平台的一款增强版集成开发环境(IDE),特别适用于Java EE应用程序的开发。它提供了许多强大的功能,如代码编辑、调试、版本控制等,使得开发过程...
【标题】: "MyEclipse中的js调试" 在JavaScript开发过程中,调试是必不可少的一环,尤其是在复杂的项目中。MyEclipse,作为一款强大的集成开发环境(IDE),为JavaScript开发者提供了方便的调试工具。本文将深入...
#### 六、其他高级调试技巧 1. **条件断点 (Conditional Breakpoint)** 可以为断点设置条件,只有当满足这些条件时才会触发断点。 - 设置方法:在断点属性中设置条件表达式。 2. **线程挂起 (Suspend Thread)**...
### MyEclipse调试基础 #### 1. 启动调试模式 首先,打开一个Java项目或类文件,在你想开始调试的地方设置断点。断点通常用一个小红点表示,当你点击行号时会自动添加或删除。设置好断点后,右击并选择“Debug As...
- 调试技巧和最佳实践 总之,MyEclipse的远程调试功能极大地提高了开发效率,特别是在处理分布式系统和生产环境问题时。掌握这项技能对于任何Java开发者来说都是非常有价值的。通过阅读提供的"remote_debug"文档,...
### MyEclipse 使用技巧与快捷键详解 #### 一、MyEclipse简介及优化设置 MyEclipse是一款基于Eclipse的强大的集成开发环境(IDE),主要用于Java Web应用开发。它集成了众多工具和服务,能够帮助开发者高效地进行...
### MyEclipse超级技巧集合 #### 一、简介与背景 MyEclipse是一款深受开发者喜爱的集成开发环境(IDE),它基于Eclipse平台,并且针对Web应用开发进行了大量的功能增强和优化。对于初学者和经验丰富的开发者来说,...
6. **Eclipse/MyEclipse调试技巧**: - 设置断点:在代码左侧栏双击设置。 - 调试步骤:设置断点→启动调试→单步调试(F5、F6、F7、F8用于不同类型的调试)→观察变量变化→发现问题并修复。 - 变量值修改:在...
- 博文链接:参考给定的博客链接(https://llhdf.iteye.com/blog/764385),可能包含了一些具体的调试技巧或常见问题的解决方案。 总的来说,使用 MyEclipse 8.5 调试 CAS 3 的过程涉及到项目导入、环境配置、调试...
教程会详细解释如何设置断点、单步执行、查看变量值等调试技巧,帮助开发者更好地理解和修复程序中的问题。 总之,《MyEclipse 6.0使用说明》全面覆盖了MyEclipse的各项核心功能,从基础操作到高级特性,为开发者...
5. **调试设置**:断点设置、调试器选项等。 6. **版本控制**:如Git或SVN的插件设置,包括用户名、密码缓存等。 7. **窗口布局**:工作区的视图位置、布局定制。 8. **偏好设置**:如语言包、错误报告设置、更新...