`

Eclipse调试Java程序技巧

阅读更多

你应该看过一些如《关于调试的N件事》这类很流行的帖子 。假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间。由于这个原因,用这些时间来重视并了解所有使我们调试更方便的功能。那能为你省下一些时间,也将会使你的生活更安逸、轻松。同时也表明其它关于此主题的帖子也是很有价值的。

第1条:不要调试太多

一个关于调试的疯狂声明作为开头。但它必须是要说的!尝试切分一下你那复杂的逻辑成多个独立的单元,并编写单元测试来检测你代码的正确性。我想像如下这样的流程应该是发生得非常频繁的----一些人通过大型web应用程序点击、填写多个表单、切换到不同的页面、正在最后的页面上检测工个计算逻辑和实现这个调试视图中的大部分逻辑。在启动你的tomcat之前总是问你自己:有没有方法使用一个单元测试来检测这些行为?你在过去这些时间可以不知道或已忘记这些,但从现在开始,我们将要关注一些eclipse的调试技巧,你会发现有大量的关于良好代码设计的好东西。

- 断点视图 : 条件断点

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

Conditional Breakpoints
Conditional Breakpoints II 

- 变量视图:展示逻辑结构

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

未开启“Show Logical Structure” 

Logical Structure I 

开启“Show Logical Structure” 

Logical Structure II 

- 变量视图:更改变量值...

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

Change Value

- Display视图

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

Display View 

- 导航: Drop to Frame

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

Drop to Frame

 

 

- 导航: Step into Selection

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

Step Into Selection

- 导航器:使用键盘

如果避免使用鼠标的话,你的操作速度会更快。你至少应该如下的快捷键:

F5 – “单步进入”

F6 – “单步执行并跳过”

F7 – “单步执行并返回”

F8 – “继续执行”

Ctrl+Shift+B – “添加断点”

Ctrl+Shift+I – “检查”

- 断点视图:Watchpoints

如果改变这个变量会有什么结果?! 有时候创建一个watchpoint对于调试会非常有用。调试器会停止,不管这个被观察的字段是被修改还是被读取 - 你可以自己来配置决定。你只需双击一个字段,然后你就可以在断点视图中看到watchpoint,并且可以编辑它的属性。你甚至可以一个访问次数,这意味着当变量被访问的次数达到这个数量的时候,调试器会停止。这对于普通的断点也适用。

Watch Point 

- 友好的可读的对象

变量视图是使用对象的toString方法来现实对应的值。因为这个原因,如果提供友好的toString方法实现,对调试来说会非常有用。在javadoc中关于java.lang.Object的默认toString实现,也是这样推荐的:

 

返回一个表示该对象的字符串。通常<code>toString</code>方法返回这么一个字符串,“字面表示”该对象。返回结果必须是一个简洁却富含可表示该对象的信息,并且友好可读取。我们推荐所有的子类都覆盖这个方法。

 

你可以参考commons-lang中的 ToStringBuilder。它提供一些功能来编写 (引用自javadoc ) "良好并连贯” 的toString方法。

默认的ToString

Default-ToString 

默认的ToStringBuilder例子

ReflectionToStringBuilder 

ToStringBuilder例子 – 多行文本风格

ReflectionToStringBuilderMultiLine 

如果你不能修改toString实现,例如你现在使用框架或者一个外部的API,你可以有另外一个选择,在Eclipse中创建一个“Detail Formatter”。你需要在变量视图中右击一个对象,并点击“New Detail Formatter…”。然后你就可以输入一些代码,用于展现这个对象。

原文链接:http://www.oschina.net/translate/again-10-tips-on-java-debugging-with-eclipse

分享到:
评论

相关推荐

    eclipse调试java的10个技巧

    "eclipse调试java的10个技巧" ...Eclipse调试Java的10个技巧可以帮助开发者更好地调试Java程序,提高开发效率和质量。这些技巧可以帮助开发者快速地了解程序的执行过程,减少不必要的调试时间,提高开发效率。

    Eclipse 调试 Java 程序的 几个个技巧.docx

    Eclipse 调试 Java 程序的技巧 Eclipse 是一个功能强大的集成开发环境(IDE),它提供了许多功能来帮助开发者调试 Java 程序。本文将介绍使用 Eclipse 调试 Java 程序的 10 个技巧,这些技巧可以帮助开发者更方便地...

    使用 Eclipse 调试 Java 程序的几个技巧

    ### 使用Eclipse调试Java程序的关键技巧 #### 一、断点视图:条件断点的高效运用 在进行复杂逻辑的调试时,条件断点能够帮助开发者聚焦于特定的执行路径,这对于理解程序的行为至关重要。例如,当你仅关心某个循环...

    使用 Eclipse 调试 Java 程序的技巧

    true的时候暂停程序,或者当代码片段的值改变的时候挂起程序。 顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。 在断点处点击鼠标右键,选择最后一个...

    Eclipse调试Java的10个技巧

    ### Eclipse调试Java的十个高效技巧 #### 一、概述 在开发Java应用程序的过程中,调试是一项不可或缺的任务。良好的调试技能能够帮助开发者快速定位问题并解决它们。Eclipse是一款广泛使用的Java集成开发环境(IDE)...

    使用 Eclipse 远程调试 Java 应用程序

    本篇文章将深入探讨如何使用Eclipse进行远程调试Java应用程序。 首先,确保你已经安装了Eclipse的最新版本,例如Ganymede(V3.4)。Ganymede引入了套接字监听连接器,使得远程调试变得更加灵活。在创建启动配置时,...

    Eclipse调试常用技巧

    在服务器端启动Java程序时添加特定的JVM参数,如`-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000`。客户端通过新建远程调试配置连接到服务器的指定端口。如果希望Eclipse作为服务器,只需更改连接...

    使用 Eclipse 调试 Java.doc

    总的来说,Eclipse的调试功能强大且灵活,通过条件断点、变量断点、方法断点、改变变量值、回退、远程调试以及异常断点,开发者能够有效地诊断和修复Java程序中的问题。熟练掌握这些技巧,将极大地提升开发效率和...

    Eclipse的Debug调试技巧大全

    Debug视图是Eclipse调试的核心窗口,它展示当前线程的调用栈信息,包括代码行号和断点状态。通过这个窗口,开发者可以清晰地看到程序的执行流程,便于定位问题。 2. **断点(Breakpoints)窗口** 断点窗口管理着...

    Eclipse调试Debug的常用技巧

    本文将详细介绍Eclipse调试中的几个常用技巧,包括条件断点、变量断点、方法断点、改变变量值、重新调试、远程调试以及异常断点。 1、条件断点:条件断点允许我们在代码执行时设置特定条件,只有当条件满足时,程序...

    Eclipse调试常用技巧 - Java综合 - Java - JavaEye论坛

    让想成为一个顶级程序员,学会调试异常是必不可少的。Eclipse调试常用技巧 -为你解决java程序中的出现的异常。

    使用Eclipse调试J2ME程序

    【使用Eclipse调试J2ME程序】 Eclipse是一款广泛使用的集成开发环境(IDE),尤其在Java开发领域,它提供了强大的支持。对于J2ME(Java Micro Edition)这种针对嵌入式设备和移动设备的Java平台,Eclipse同样可以...

    Eclipse调试小技巧,使用更加快速

    ### Eclipse调试小技巧详解 #### 一、引言 对于初入职场的软件开发者来说,掌握高效的调试技巧是非常重要的。本文旨在帮助那些刚从学校步入社会的开发人员以及那些尚未充分利用Eclipse高级调试功能的朋友,更好地...

    Eclipse调试常用技巧.

    【Eclipse调试常用技巧】 Eclipse作为一款强大的Java开发集成环境,其调试功能十分强大,对于初学者或者未充分利用这些工具的开发者来说,掌握这些技巧能够显著提高代码调试的效率和准确性。以下是一些Eclipse调试...

    eclipse调试 eclipse调试

    若本机作为客户端,需在远程服务器启动Java程序时开启调试开关,如添加`-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000`等参数。若本机作为服务端,则需要远程程序连接到Eclipse的调试端口。 在远程...

    Eclipse_Debug_调试技巧入门_Eclipse_Debug_调试技巧入门_

    2. **调试Java语言程序**:在Eclipse中,调试Java程序非常直观。首先,在代码中设置断点(点击行号即可)。然后,选择"Run As" -&gt; "Java Application"启动调试模式。程序会在第一个断点处暂停,此时你可以单步执行...

    Eclipse调试技巧.docEclipse调试技巧.doc

    通过熟练掌握这些Eclipse调试技巧,开发者可以更高效地定位和修复程序中的错误,提升编程效率。此外,Eclipse还支持更复杂的调试策略,如监视点、线程调试、远程调试等,这些都极大地丰富了调试手段,使得问题排查变...

Global site tag (gtag.js) - Google Analytics