文档章节

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

奋斗到天明
 奋斗到天明
发布于 2015/08/27 17:46
字数 1236
阅读 178
收藏 1
点赞 0
评论 0

在这篇教程中,我们将看到有关使用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
昌平
程序员
5月份值得一看的 Java 技术干货!

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

Java技术栈 ⋅ 05/31 ⋅ 0

🛠VS Code编辑器配置Java开发环境

🛠VS Code编辑器配置Java开发环境 一、简述 及讨论 由于学校课程的原因,是基本以java开发为主线的课程,但是我对java兴趣不大,又加上我不太喜欢 「Eclipse」这个java的集成开发环境(简称...

Cc卿 ⋅ 06/02 ⋅ 0

Oracle Java Mission Control 帮助

缩写 含义 JDK Java 开发工具包 JDP Java Discovery Protocol JFR Java 飞行记录器 JMC Java Mission Control JMX Java Management Extensions JVM Java 虚拟机 MBean 托管 Bean (Java) RCP ......

光斑 ⋅ 04/27 ⋅ 0

用Java为Hyperledger Fabric(超级账本)开发区块链链代码智能合约之编写链代码程序

编写第一个 Java 链代码程序 在上一节中,您已经熟悉了如何构建、运行、部署和调用链代码,但尚未编写任何 Java 代码。 在本节中,将会使用 Eclipse IDE、一个用于 Eclipse 的 Gradle 插件,...

笔阁 ⋅ 05/24 ⋅ 0

在win10下安装eclipse

在win10下安装eclipse 原创 2017年06月02日 20:39:59 24343 今天换了新电脑,需要在win10中重新安装eclipse。 1、在官网下载jdk。目前最新版本为jdk8。 http://www.oracle.com/technetwork/...

linjin200 ⋅ 04/23 ⋅ 0

java编程学习之Eclipse中透视图和视图简聊

  虽然使用JDK编译工具可以白那些java程序,但在项目开发时需要使用大兴的集成开发工具,以避免编码错误,而Eclipse为编程人员提供了一流的java开发环境,深受java开发人员的喜爱,那么今天...

老男孩Linux培训 ⋅ 06/05 ⋅ 0

Xtend语言(1):独辟蹊径的JVM语言

我是2004年开始学习Java语言的,那时候的Java是1.4版本,说实在的,最新的Java10跟我一开始学习Java时候的语法变化并不大。我相信很多人都会跟我有相同的感受:Java写的越多就越觉得语法十分...

神思者l ⋅ 06/05 ⋅ 0

JDBC + SAP云平台 = 运行在云端的数据库应用

在前一篇文章JPA + EclipseLink + SAP云平台 = 运行在云端的数据库应用我介绍了如何通过JPA和EclipseLink操作部署在SAP云平台上的HANA数据库实例。 在这篇文章里,我们使用JDBC代替JPA和Ecl...

JerryWang_SAP ⋅ 05/05 ⋅ 0

Spring MVC-环境设置(转载实践)

以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvcenvironment_setup.htm 说明:示例基于Spring MVC 4.1.6。 步骤1-安装Java开发工具包(JDK): 您可以从Oracle的Java站...

easonjim ⋅ 2017/08/29 ⋅ 0

【转载保存】Ubuntu14.04安装pycharm用于Python开发环境部署,并且支持pycharm使用中文输入

转载自:http://www.cnblogs.com/chentq/p/4975794.html 作者: 刍狗 一、目标 实现在Linux下用pycharm调试工具/Python开发 Linux使用vi/vim工具写Python,缺点:调试不方便,无代码提示、跳...

大连瓦匠 ⋅ 2017/10/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 17分钟前 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 32分钟前 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 今天 ⋅ 8

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部