文档章节

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

奋斗到天明
 奋斗到天明
发布于 2015/08/27 17:46
字数 1236
阅读 209
收藏 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
昌平
程序员
私信 提问
10 个非常重要的 HotSpot JVM 参数

1) 跟 Java 堆大小相关的 JVM 内存参数 下面三个 JVM 参数用来指定堆的初始大小和最大值以及堆栈大小 -Xms 设置 Java 堆的初始化大小 -Xmx 设置最大的 Java 堆大小 -Xss 设置Java线程堆栈大小...

红薯
2011/11/16
1K
8
10 个非常重要的 HotSpot JVM 参数

Sun的JDK包含了很多可以参数而且实际上你也不可能了解每一个JVM参数,从我的经验来看,除了那些和堆大小,打印GC信息和远程调试相关的参数以外,其他的参数你可能基本上都用不到。 即使这样,...

王振威
2012/11/26
8.3K
1
Eclipse 远程调试 Java 程序

今天同事问我怎么远程调试 java 程序。我不会,那马上搜索看看。在被高度的程序中加个数据就行。然后 eclipse 调试时指定端口就行,太方便了。 比如,现在有一个代码: 把这个java 导出为 re...

鉴客
2010/08/05
1K
1
eclipse远程debug,java项目

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

有事没事
2014/12/05
0
0
0基础学Java Java开发学习需要什么工具?

JDK是Java开发工具包 (Java Development Kit) 的缩写。它是一种用于构建在Java平台上发布的应用程序、applet 和组件的开发环境。其中包括了Java编译器、JVM、大量的Java工具以及Java基础API...

老男孩Linux培训
2018/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

全面理解Java内存模型(JMM)及volatile关键字

理解Java内存区域与Java内存模型 Java内存区域 Java虚拟机在运行程序时会把其自动管理的内存划分为以上几个区域,每个区域都有的用途以及创建销毁的时机,其中蓝色部分代表的是所有线程共享的...

亭子happy
7分钟前
0
0
Prometheus监控mysql实例--centos7安装mysql_exporter

目录 概述 环境准备 普罗米修斯简介 mysql安装 mysqld_exporter安装 启动参数列表 概述 prometheus(普罗米修斯) 是一个开源系统监控和报警工具包,许多公司和组织都采用了Prometheus,该项目...

java_龙
12分钟前
3
0
拥有2000家门店,他如何晋升为服装界的新宠?

摘要: —— iwarm3.0加热组件、碳纳米管膜炎、管状石墨结构体...你看到并不是一款高科技电子产品,这是快鱼服饰在这个冬天推出的黑科技产品 - 智能温控羽绒服。 在竞争激烈的服装行业,快鱼...

阿里云云栖社区
15分钟前
0
0
不忘初心 砥砺前行-智和信通2018年年会报道

1月18日,智和信通以“不忘初心 砥砺前行”为主题的2018总结会议暨2019年年会在京召开。年会以总经理李少龙的讲话为开场,充分肯定了全体员工2018年的工作和成绩,并表达了公司产品智和网管平...

智和网管平台
23分钟前
0
0
NGINX api网关

以谁为师
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部