您应该已经看过一些热门帖子,例如《关于调试的N件事》。假设我每天花1小时调试我的应用程序,加起来就是很多时间。出于这个原因,利用这段时间来欣赏和理解所有使调试更容易的特性。这将为您节省一些时间,让您的生活更加舒适和轻松。它还表明关于该主题的其他帖子也很有价值。规则1:不要调试太多从关于调试的疯狂声明开始。但是一定要有话要说!尝试将复杂的逻辑拆分成单独的单元,并编写单元测试来检查代码的正确性。我想象像下面这样的过程应该会非常频繁地发生——一些人点击一个大型的web应用程序,填写多个表单,切换到不同的页面,并且正在测试一个计算逻辑并在这个调试视图中实现大部分逻辑。在启动tomcat之前总是问自己:有没有办法使用单元测试来检测这种行为?过去你可能不知道或忘记了这些,但从现在开始,我们将重点介绍一些eclipse调试技巧,你会发现好的代码设计有很多好处。-断点视图:如果您只对应用程序的某个部分感兴趣,则条件断点非常有用。比如你要在第13个周期检查程序,或者调试抽象父类中的一些功能,而你只关心其中一个具体实现。您可以在断点视图中设置条件,或通过代码旁边的蓝色断点标记的右键单击菜单(“断点属性”)。可以在条件代码片段为真时暂停程序,也可以在代码片段的值发生变化时暂停程序。-变量视图:显示逻辑结构如果你需要在变量视图中查看一个Map对象或者List对象的值,对于eclipse的默认设置来说一般没那么容易。假设你使用的是HashMap,你需要点开每一个实体入口,面对各种HashMap的实现细节。但是,在变量视图上方有一个名为“ShowLogicalStructure”的按钮。它非常有用,尤其是当你的对象的toString()方法显示的信息不友好时。几周前,我的老大向我展示了这个功能。你知道,他经常使用PowerPoint或Excel。对于像我这样的开发人员来说真是太可惜了没有打开“显示逻辑结构”打开“显示逻辑结构”-变量视图:更改变量值......当您需要稍微更改输入时无需重新启动调试会话,只需通过在表单中??输入新信息,您可以在调试阶段直接修改变量的值。写的时候可以节省一些时间,用这个功能可以更方便的模拟一些奇怪的情况。-显示视图你知道“显示视图”吗?您可以在调试期间通过“窗口”->“显示视图”->“显示”激活它。您的日食现在应该是一个空白的新视图。您可以使用此视图输入或计算一些新代码。代码在当前调试位置的上下文中执行,这意味着您可以使用所有变量甚至内容助手。要执行您的代码,只需标记它并使用右键单击菜单或CTRL+U(执行)或CTRL+SHIFT+I(检查)。-导航:拖放到框架我想任何人都知道“StepInto”、“Stepover”,可能也被称为“步进回归”。这些是调试时的基本导航功能。我想提一下我非常喜欢的两种高级导航方法。第一个是“DroptoFrame”。使用此功能,您可以回到过去。您可以直接返回到正在运行的java堆栈框架中的框架。我经常在调试时使用它返回一帧,不小心错过了一行感兴趣的代码。使用“DroptoFrame”功能,我可以简单地重新运行一帧代码。#p#-导航:进入选择第二个是“进入选择”。这也很简单,但是很多人使用的那个。要使用它,您只需按Ctrl+Alt并单击要运行的方法名称。很方便也很快捷。与“StepInto”相比,非常方便。把你想象成跟踪一个有很多参数的函数。如果你使用“StepInto”,你必须进入和退出每个参数计算过程才能进入你真正想进入的函数。“Runtoline”也是一个很棒的功能。只需将光标放在要运行到的行的前面,然后按“CTRL+R”。-导航器:使用键盘,如果避免使用鼠标,您的工作速度会更快。你至少应该有以下快捷键:F5-“StepInto”F6-“StepIntoAndStepOver”F7-“StepIntoAndBack”F8-“ContinueExecution”Ctrl+Shift+B-“AddBreakpoint”Ctrl+Shift+I-"Inspect"-BreakpointView:Watchpoints如果你改变这个变量会发生什么?!有时创建观察点对于调试非常有用。无论观察到的字段是否被修改或读取,调试器都会停止——这取决于您的配置。你只需双击一个字段,然后你就可以在断点视图中看到观察点并编辑它的属性。您甚至可以设置访问计数,这意味着当变量被访问该次数时调试器将停止。这也适用于普通断点。-友好可读的对象变量视图使用对象的toString方法显示相应的值。出于这个原因,如果提供toString方法的友好实现,将对调试非常有用。javadoc中java.lang.Object的默认toString实现也推荐如下:返回表示对象的字符串。通常,toString
方法返回一个字符串,该字符串“按字面意思表示”该对象。返回结果必须是代表对象的简洁而丰富的信息,并且友好且可读。我们建议所有子类重写此方法。可以参考commons-lang中的ToStringBuilder。它提供了编写(引用自javadoc)“良好且连贯”的toString方法的工具。默认ToString默认ToStringBuilder示例ToStringBuilder示例-多行文本样式如果您无法修改toString实现,例如,如果您现在正在使用框架或外部API,您还有另一个选择,即在Eclipse中创建一个“DetailFormatter”。您需要右键单击变量视图中的一个对象,然后单击“NewDetailFormatter...”。然后你可以输入一些代码来显示这个对象。原文链接:http://www.oschina.net/translate/again-10-tips-on-java-debugging-with-eclipse
