文档章节

Eclipse调试Java程序的十大技巧 (Top 10 Java Debugging Tips with Eclipse)

奋斗到天明
 奋斗到天明
发布于 2015/08/27 17:46
字数 1236
阅读 199
收藏 1

在这篇教程中,我们将看到有关使用Eclipse去调试Java应用,调试能够帮助我们找到并修改应用的缺陷。我们将关注运行时问题,而不是编译时错误。有像GDB一样的命令行调试器也一样可用。在这篇教程中,我们关注基于GUI的调试器,通过这篇教程,我们会让我们最喜欢的IDE——Eclipse飞跑起来。虽然我们讲解的是Ecilpse,但是,这些技巧是十分通用,也适合大多数IDE调试,比如NetBeans。 在通读这篇文章之前,我推荐你去看看Eclipse的快捷键,他也十分有用。在写这篇文章时,我的Eclipse版本是Juno。

  • 别把System.out.println当做调试工具

  • 启用所有组件的详细的日志级别

  • 使用日志分析器去读取日志文件

  PS:通读这篇教程,五分钟即可。编写demo逐一实践这篇教程,半个小时足矣。但工作效率将大大提高。记住:“I hear and I forget, I see and I remember, I do and I understand.” 


1、Conditional Breakpoint 条件断点 期望你知道怎么添加断点。否则,只要点击左窗格(在行数的前面)断点就会被创建。在调试模式视角(debug prespective)下,‘断点’试图(Breakpoints view)会列出被创建的断点。我们能够给它添加布尔值(boolean)条件。如此,只有布尔值条件正确断点才会被激活并执行。否则将会跳过。

PS:这个就是有条件的断点。只有满足条件才会被调用。应该比较常用,不用多说。 

 2、Exception Breakpoint 异常断点 在断点视图有一个像J!标签的按钮,我们可以用它添加一个java的异常断点,比如当一个空指针异常抛出时,我们想让程序暂停,并允许调试,这时候我们就可以用这个方法。

3、Watch Point 观察点 这是一个我十分喜欢的功能,当选中的属性被访问或修改时,执行的程序将暂停并允许调试。在Outline视图中选择一个类变量,从右键菜单中选择切换观察点(Toggle Watchpoint.),这样就会创建为这个变量创建一个观察点,并在断点试图中列出。

PS:十分牛X的功能,之前还没用过,惭愧惭愧…… 

PS:另外方法也可以用 

 4、求值(显示、检验、观察) 在被选择的变量与表达式上用 Ctrl+Shift+d 或者Ctrl+Shift+i,就会显示值。在调试中,我们也可以添加一个永久的观察。那么他就会出现在表达式试图(Expressions view )中。

5、Change Variable Values 修改变量的值 在调试过程中,我们可以动态地修改变量的值:选择一个变量,进入变量视图,选择值、类型,按下Enter键。

6、Stop in Main 在主方法中停止 在运行/调试设定中(Run/Debug Settings),编辑配置( Configuration)中我们可以选中一个叫“Stop In Main”的复选框。如果这样,当我们调试程序,程序通过main方法启动时,将会停在mian方法的第一行。

PS:这个在框架启动的时候非常有用,我一直就想找到这样的方法…… 

7、相比去系统属性中添加环境变量,我们通过编辑配置对话框便利地添加变量。

8、Drop to Frame 进入到帧 这是第二个我喜欢的功能,在调试中,我们将控制权返回到调用栈的任意帧,但是变量已经的发生的改变不会重置。选择你想返回并重新调试的栈级,在调试工具栏中点击进入栈帧的按键,Eclipse 十分的酷!

PS:很强大的功能,选择栈帧可以重复调试,唯一的遗憾就是不能重置变量,这也与JVM有关。

  1. 9、Step Filter步过滤器 当我们步入方法(F5)时,我们可能进入外部的包(像 java),可是我们并不需要它,我们可以在首选项中,添加一个过滤器来排除某些包。

10、Step Into, Over and Return 步入、跳过、返回 我把这个放在最后一点,这是学习的第一件事:-)

  • F5 - 步入: 移动到下一步,如果当前行有一个方法调用,那么控制权就会进入该方法的第一行。

  • F6 - 跳过: 移动到下一步,如果当前行有一个方法调用,那么方法调用将在内部执行,只是将控制权移到下一行。

  • F7 - 返回: 如果是在方法内执行,那么控制权将移到当前方法被调用的调用行。

  • F8 - 跳转到下一个断点

PS:的确是基础……

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
私信 提问
eclipse远程debug,java项目

首先java项目要支付可远程调试得到启动时加入参数 启动远程调试 启用JMX,远程性能观察 eclipse配置 其中:host为远程java程序提供远程调试的IP,post为远程java程序提供远程调试的端口 使用 ...

有事没事
2014/12/05
0
0
5月份值得一看的 Java 技术干货!

5月又即将要离我们远去了,这个月有小长假51劳动节,有54青年节,有513母亲节,更有坑爹的520神马节?!! 废话不说,又到了总结上个月干货的时候了,这个月我们带来了各种Java技术干货,都是...

Java技术栈
05/31
0
0
第零讲.0 eclipse开发环境(支持tomcat、maven、jetty、JBoss)

1、安装jdk 安装完成之后配置java环境变量: JAVA_HOME:jdk安装路径; Path:%JAVA_HOME%bin; Classpath:.;%JAVAHOME%libdt.jar;%JAVAHOME%libtools.jar; cmd-java、javac、java -versi......

神勇小白鼠
2012/04/13
0
0
java远程调试与JVM调优工具

Java远程调试方法: 1、被调试程序当作调试服务器(本地主动连接远程服务器,需要用如下命令让远程服务器jvm开启调试模式)。 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8765 ...

chape
2013/12/24
0
0
eclipse启动出错的解决方案:org.osgi.framework.BundleExcep...

问题描述: 启动eclipse时出错,无法正常启动,查看log发现是异常信息:org.osgi.framework.BundleException…… 解决方案: 其实发生这个问题的原因是加载java虚拟机出的错,因为eclipse实际...

城邑耕夫
2012/08/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 源代码和 C 源代码的运行区别

与其他程序的执行方式和编译方式不同。 Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性。 请参考下图。 https://www.cwiki.us/pages...

honeymose
今天
4
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
5
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部