Java程序猿必知的10个调试技巧
在本文中,作者将使用大家经常使用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面。
在開始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来非常多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在開始前给大家提3点建议!
不要使用System.out.println作为调试工具
把全部涉及到的组件日志级别激活并使用
使用日志分析器来读取日志
1.条件断点
假设你不知道怎样加入断点,仅仅需点击左边面板(行号前面)断点即被创建。在调试界面中。“断点”视图会把全部被创建的断点列出来。我们能够给它加一个布尔条件,也就是说。该断点会被激活而且假设布尔条件为真。就会运行该断点。否则将会跳过往下运行。
2.异常断点
在断点视图中,有一个J!标记button!我们能够使用该button来加入一个Java异常断点。
比如,我们想让程序在遇到空指针异常(NullPointerException)时,仍然能继续调试。那么我们能够使用该button来加入一个异常断点!
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
3.监视点
这是一个非常好的功能,当选定的属性訪问或改动程序时,程序会停止运行并同意进行调试。在Outline视图中选择一个类变量并从上下文菜单中选择切换监视点。属性监视点将会被创建,在断点(Breakpoints)视图中会把全部监视点用列表的形式显示出来。
4.评估/检查
按Ctrl+Shift+D或者Ctrl+Shift+I来显示选定变量或者表达式的值。我们也能够给一个变量或表达式加入永久观察点。当程序在调试时,这些观察点就会在表达式视图(Expression view)中显示出来。
5.改动变量值
在调试过程中,我们能够改动变量值。先选好一个变量然后进入变量视图(Variables view)。依据变量类型在其相应的Value列里输入值就可以。
6.在Main函数里面停止运行
在运行/调试设置中,编辑配置对话框中有“Main”这个选项卡,我们能够勾选“Stop in main”这个复选框。假设选中。那么在调试一个基于main方法的Java程序时,程序会在main方法第一行位置便停止运行。
7.环境变量
并非在系统属性中加入环境变量,我们能够在编辑配置对话框中非常方便地进行加入。
8.Drop to Frame
这也是我最喜欢的一个功能。调试期间。能够又一次跳到调用堆栈框架的開始处运行。而且变量值也会回到最初。依据回档调整堆栈的深度。这个功能的主要用途是全部变量状态能够高速回到方法開始运行时候的样子。然后你能够又一次进行一遍一遍运行,这样就能够在你关注的地方进行多次调试,可是在运行过程中也会产生一些副作用。比方插入到数据库里面的数据是无法删除的!
9.分布过滤
当我们进入(F5)方法的时候,我们还能够訪问其外部库(比方java.*),我们可能不需要这个库,就能够在Perference选项卡页面加入一个过滤器来排除这个包。
10.进入、跳出和返回
我把这个放在最后一点,在调试过程中,这些是必需要了解(最好掌握)的东西:
F5——进入:移动到下一个步骤,假设当前行有一个方法调用,该控件将会跳转到被调用方法的第一行运行。
F6——跳出:移动到下一行。假设在当前行有方法调用,那么会直接移动到下一行运行。
不会进入被调用方法体里面。
F7——返回:从当前方法中跳出。继续往下运行。
F8——移动到下一个断点处运行。
Java程序猿必知的10个调试技巧的更多相关文章
- Java程序员应该知道的10个调试技巧
试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...
- (转) Java程序员应该知道的10个调试技巧
原地址:http://www.csdn.net/article/2012-09-03/2809495-java-debugging-tips-with-eclipse 调试可以帮助识别和解决应用程序缺 ...
- (转)Java程序员应该知道的10个调试技巧
(转自 酷勤网 – 程序员的那点事!http://www.kuqin.com/) 试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里 ...
- Java程序员必须知道的10个调试技巧
调试可以帮助识别和解决应用程序缺陷,在本文中,将使用大家常用的的开发工具Eclipse来调试Java应用程序. 但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...
- 每一个程序猿必知之SEO
似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之S ...
- 程序猿必知必会Linux命令之awk
前言 对于一名专业的程序员来说,Linux相关知识是必须要掌握的,其中对于文本的处理更是我们常见的操作,比如格式化输出我们需要的数据,这些数据可能会来源于文本文件或管道符,或者统计文本里面我们需要的数 ...
- Java程序员应该知道的10个Eclipse调试技巧
Eclipse是众多Java程序员实用的开发工具,其中开发技巧也是繁多,但作为优秀的Java程序员,需要掌握最起码的调试技巧. 1 条件断点 2 异常断点 3 监视点 4 评估/检查 5 修改变量值 ...
- Java程序员应该知道的10个面向对象理论
英文原文:10-object-oriented-design-principles 面向对象理论是面向对象编程的核心,但是我发现大部分 Java 程序员热衷于像单例模式.装饰者模式或观察者模式这样的设 ...
- Java程序员应当知道的10个面向对象设计原则
面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) . Decorator(装饰器).Observer(观察者) 等设计模式,而没有把足够多的注 ...
随机推荐
- 使用maven的tomcat:run进行web项目热部署
近期又又一次看了一下maven的东西,事实上主要是由于去了解Jenkins,后期或许会补充jenkins的博文. 怎么在eclipse里面创建maven webproject,这边就不介绍了,參见:h ...
- HDU 1533 Going Home(KM完美匹配)
HDU 1533 Going Home 题目链接 题意:就是一个H要相应一个m,使得总曼哈顿距离最小 思路:KM完美匹配,因为是要最小.所以边权建负数来处理就可以 代码: #include <c ...
- BZOJ2243: [SDOI2011]染色(树链剖分/LCT)
Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如 ...
- eclipse git冲突解决
1.工程->Team->同步: 2.从远程pull至本地,就会出现如下内容: 3.使用Merge Tool,执行第二项 4.再手动修改 4.修改后的文件需要添加到Git index中去: ...
- springMVC注解用法:@modelattribute的用法
在Spring MVC里,@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity,但同时,也可以放在方法注解里. 如果把@ModelAttrib ...
- 洛谷 P1100 高低位交换
P1100 高低位交换 题目描述 给出一个小于2^32的正整数.这个数可以用一个32位的二进制数表示(不足32位用0补足).我们称这个二进制数的前16位为“高位”,后16位为“低位”.将它的高低位交换 ...
- HDU 3131 One…Two…Five! (暴力搜索)
题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...
- android-铃声的设置与播放
在android系统中,不同铃声存放的铃声路径: /system/media/audio/ringtones 来电铃声 /system/media/audio/notifications 短信通知铃声 ...
- python缩进报错
1.这个错误应该已经好久了:也应该熟悉了才对 IndentationError: unexpected indent python 缩进错误:意外缩进Python 但今天的问题有点特殊,我想在程序中间 ...
- tcl -mode
-exact 严格匹配(如string equal) -glob 通配符式匹配(string match) -regexp 正则表达式匹配(regexp) array get和array ...