Eclipse 调试 Java 程序的技巧
- 断点视图 : 条件断点
如果你只对应用中的某部分感兴趣的话,这个功能非常有用。例如,如果你要在第13次循环的时候检查程序,或者在一个抽象父类中调试某些功能,而你只关注其中一个具体的实现。你可以在断点视图中设置条件,或者通过代码旁边的蓝色断点标记的右键菜单("Breakpoint Properties")设置。你可以在条件代码片段为true的时候暂停程序,或者当代码片段的值改变的时候挂起程序。

- 变量视图:展示逻辑结构
如果你需要在变量视图查看一个Map对象或者List对象的值,对于eclipse的默认设置,一般并不是那么容易。假设,你使用的是HashMap,你需要点击遍历各个实体条目,并面临各种HashMap的实现细节。但是,在变量视图上面有一个叫做“Show Logical Structure”的按钮。它非常有用,尤其当你的对象的toString()方法所展示的信息并不友好的时候。我的老大在几周前为我展示了这个功能。你知道,他经常跟PowerPoint或者Excel打交道。对于我这么一个开发人员,多丢脸哦 
未开启“Show Logical Structure”

开启“Show Logical Structure”

- 变量视图:更改变量值...
当你需要稍微更改输入信息的时候,不需要重新开始调试会话,只需在一个表格中输入新的信息,你可以在调试阶段直接修改你的变量的值。有写时候,你可以节省一些时间,你可以通过这个功能,更加简单的模拟一些怪异的情况。

- Display视图
你知道“Display视图”吗?你可以在调试过程中,通过“Window” -> “Show View” -> “Display”来激活它。现在,你的eclipse应该是一个空白的新视图。你可以使用这个视图,输入或者演算一些新的代码。这些代码在当前的调试位置的上下文环境中被执行,这意味着,你可以使用所有变量甚至是内容助手。要执行你的代码的话,只需标记它,并使用右键菜单或者CTRL+U(执行)或者 CTRL+SHIFT+I (检查).

- 导航: Drop to Frame
我想任何人都知道“Step Into”, “Step over”,而且可能也知道“Step return”. 这些是调试时的基本导航功能。我想提两个我非常喜欢的导航的高级方法。第一个是“Drop to Frame”. 使用这个特性你可以及时回退
你可以直接回退到运行过的java堆栈帧中某一帧。当我调试时,一不小心错过了某个关注的代码行时,我常常用这个回退一帧。使用“Drop to Frame”这个特性我可以简单的重新运行某帧代码。

- 导航: Step into Selection
第二个是“Step into Selection”. 这也是很简单,但很多人使用的一个。要使用它,你只需要按 Ctrl+Alt 同时点击一个你想运行到的方法名。非常方便,非常快速。相比“Step Into”这个非常方便,想想你像跟踪进一个有很多参数的函数,如果用“Step Into”你必须进入,退出每个参数计算过程,才能进入到你真正想进的函数。“Run to line”也是很棒的特性。只需要把光标放在你想运行到的哪一行前面,然后按“CTRL+R”就可以了。

- 导航器:使用键盘
如果避免使用鼠标的话,你的操作速度会更快。你至少应该如下的快捷键:
- F5 – “单步进入”
- F6 – “单步执行并跳过”
- F7 – “单步执行并返回”
- F8 – “继续执行”
- Ctrl+Shift+B – “添加断点”
- Ctrl+Shift+I – “检查”
- 断点视图:Watchpoints
如果改变这个变量会有什么结果?! 有时候创建一个watchpoint对于调试会非常有用。调试器会停止,不管这个被观察的字段是被修改还是被读取 - 你可以自己来配置决定。你只需双击一个字段,然后你就可以在断点视图中看到watchpoint,并且可以编辑它的属性。你甚至可以一个访问次数,这意味着当变量被访问的次数达到这个数量的时候,调试器会停止。这对于普通的断点也适用。

- 友好的可读的对象
变量视图是使用对象的toString方法来现实对应的值。因为这个原因,如果提供友好的toString方法实现,对调试来说会非常有用。在javadoc中关于java.lang.Object的默认toString实现,也是这样推荐的:
返回一个表示该对象的字符串。通常<code>toString</code>方法返回这么一个字符串,“字面表示”该对象。返回结果必须是一个简洁却富含可表示该对象的信息,并且友好可读取。我们推荐所有的子类都覆盖这个方法。
你可以参考commons-lang中的 ToStringBuilder。它提供一些功能来编写 (引用自javadoc ) "良好并连贯” 的toString方法。
默认的ToString

ToStringBuilder例子 – 多行文本风格

如果你不能修改toString实现,例如你现在使用框架或者一个外部的API,你可以有另外一个选择,在Eclipse中创建一个“Detail Formatter”。你需要在变量视图中右击一个对象,并点击“New Detail Formatter…”。然后你就可以输入一些代码,用于展现这个对象。
Eclipse 调试 Java 程序的技巧的更多相关文章
- 使用 Eclipse 调试 Java 程序的技巧
你应该看过一些如<关于调试的N件事>这类很流行的帖子 .假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间.由于这个原因,用这些时间来重视并了解所有使我们调试更方 ...
- 浅谈1——用Eclipse调试JAVA程序
本篇博客主要介绍如何用Eclipse调试简单的JAVA程序. 1.如下图,一个简单的JAVA程序 2.设置断点. 方法:选中需设置断点的行代码,按快捷键Ctrl+Shift+B,设置断点: 断点设置 ...
- eclipse调试java程序的九个技巧
转:http://www.cnblogs.com/lingiu/p/3802391.html 九个技巧: 逻辑结构 条件debug 异常断点 单步过滤 跳到帧 Inspect expressions ...
- 使用 Eclipse 调试 Java 程序的 10 个技巧
你应该看过一些如<关于调试的N件事>这类很流行的帖子 .假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间.由于这个原因,用这些时间来重视并了解所有使我们调试更方 ...
- 【转】使用 Eclipse 调试 Java 程序的 10 个技巧
你应该看过一些如<关于调试的N件事>这类很流行的帖子 .假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间.由于这个原因,用这些时间来重视并了解所有使我们调试更方 ...
- Eclipse调试Java程序技巧
主要步骤.Debug As"->"Java Application".双击设置断点,F5是跳进,F6是执行下一步,F7是跳出 在看这篇文章前,我推荐你看一下Ecli ...
- (转)eclipse调试java程序的九个技巧
转自:http://www.cnblogs.com/lingiu/p/3802391.html 九个技巧: 逻辑结构 条件debug 异常断点 单步过滤 跳到帧 Inspect expressions ...
- Eclipse调试Java的十个技巧
先提三点 不要使用System.out.println()作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志 1.条件断点 想象一下我们平时如何添加断点,通常的做法是 ...
- 10个利用Eclipse调试Java的常见技巧
http://www.open-open.com/news/view/1ad9099 阅读目录 1. Conditional Breakpoint 2. Exception Breakpoint 3. ...
随机推荐
- 省略nslog打印
//#if #endif宏定义的意思就是如果定义了DEBUG,那么就使用NSLog输出:否则这段代码直接忽略.有人会疑问这个DEBUG和_DEBUG来自哪里,这个其实不用担心,这个来自于Xcode的默 ...
- A VNC server is already running as :1
root@host:~# rm -f /tmp/.X1-lock root@host:~# rm -f /tmp/.X11-unix/X1 root@host:~# vncserver -geomet ...
- xampp默认mysql密码设置,修改mysql的默认空密码
xampp默认mysql密码设置,修改mysql的默认空密码 分类: xampp2012-09-12 11:24 30264人阅读 评论(5) 收藏 举报 mysqlphpmyadminauthent ...
- Unity 中 使用c#线程
使用条件 天下没有免费的午餐,在我使用unity的那一刻,我就感觉到不自在,因为开源所以不知道底层实现,如果只是简单的做点简单游戏,那就无所谓的了,但真正用到实际地方的时候,就会发现一个挨着一个坑 ...
- 固定某一元素在某一位置 jquery
方法: $(window).scroll(function (){}) 属性: 滚动变化值 $(window).scrollTop();$(window).scrollLeft(); 需要结合的样式: ...
- ATT 汇编语法
在研华的pc104上使用看门狗要使用汇编.使用汇编来修改CMOS里面的参数.也就是内联汇编.linux下gcc只支持ATT汇编.所以这儿有必要将ATT语法学习学习.以后需要的时候翻出来温习温习. ...
- 深入了解Windows句柄到底是什么
深入了解Windows句柄到底是什么 http://blog.csdn.net/wenzhou1219/article/details/17659485 总是有新入门的Windows程序员问我Wind ...
- composer 272解决
composer global require "fxp/composer-asset-plugin:~1.0.3" ...
- Uploadify上传问题
版本:Uploadify Version 3.2官网:http://www.uploadify.com Uploadify是一款基于Jquery的上传插件,用起来很方便.但上传过程中的提示语言为英文, ...
- 局部变量、结构体和main函数
在函数中定义的变量称为自动局部变量.因为每次调用该函数时,它们都自动“创建”,并且它们的只对于函数来说是局部的,局部对象的变量都会默认为空.局部变量的值只能在定义该变量的函数中访问,不能从函数之外访问 ...