Eclipse的调试功能的10个小窍门[转]

原文链接:http://www.importnew.com/6164.html

你可能已经看过一些类似“关于调试的N件事”的文章了。但我想我每天大概在调试上会花掉1个小时,这是非常多的时间了。所以非常值得我们来了解一些用得到的功能,可以帮我们节约很多时间。所以在这个主题上值得我再来写一篇文章。

第一条: 不要过分的调试!

有关调试的第一条要牢记的便是这条很疯狂的口号!但是我必须要在这里再说一遍:不要过分的调试!试着将复杂的逻辑分解成独立的小单元,然后写单元测试代码来保证小单元的正确运行。我经常看到某些人会这么做:在一个大型的Web应用上点击,填了几个表单,跳转了多个页面,只是为了确认最后一个页面的结果的正确性,最后在调试视图下来开发代码。

在你开启tomcat之前,应该要先问问自己:有没有什么方法可以用单元测试来检测代码的行为呢?你可以找到很多教你如何写出好的代码的教程。而这里我主要来谈一谈Eclipse的调试功能,你可能不知道,或者长时间以来有些淡忘的功能。

调试视图:有条件的断点

如果你仅仅对程序的某个部分感兴趣,调试视图是非常有帮助的。假设你想看看一个循环中的第十三次循环得到什么结果,或者你正在调试一个抽象父类,想看看某个具体的子类。你可以在调试视图设置条件,右键点击代码旁的蓝色断点符号,在弹出菜单中选择“Breakpoint
Properties…”。你可以选择是在你的代码段返回真值是停止程序或者当你的代码段的值改变时停止。


变量视图:显示逻辑结构(Show Lodical Structure)

如果你想在变量视图中查看Map或者List中的值,eclipse的默认设置可能不是那么方便。譬如你在使用HashMap,你必须要点开所有的子节点才能看到HashMap中的内容,还要受到HashMap实现细节的干扰。但是在变量上有一个小按钮-“Show
Logical
Structure”。它非常的方便,尤其当你没有实现某个对象的toString()代码时。我的老板前几个星期刚刚告诉我Eclipse有这个功能。你知道,他是那种每天只用对着PowerPoint和Excel的人。这对我这种号称程序员的家伙来说是件多么丢脸的事情啊!;-)

变量视图:更改值…(Change Value…)

假设你在一个基于Web的表单中稍微改了一点输入值,那么我们不需要重启调试session,你可以直接使用变量视图的改变变量值的功能。这可以节省你的时间,有时候也能帮你模拟一些奇怪的行为。

显示视图(Display
View)

你知道还有个“显示视图”吗?你可以通过“Window” -> “Show View” ->
“Display”激活这个视图。现在你的Eclipse有一个完全空的视图。你可以通过这个视图来输入以及验证新的代码段。这些代码将会在当前的调试的位置的上下文中执行,这意味着你可以使用所有的变量,你甚至还能使用内容辅助。要执行这个代码,你需要选中它,然后点击右键弹出菜单点击相应的项,或者按下CTRL+U(执行)或者按下CTRL+SHIFT+I(检查)。

导航:
Drop to Frame

我相信所有人都知道”Step Into”,“Step over”,甚至知道“Step
return”。这是调试要掌握的最基本的技巧。我还想告诉你另外两种方法。我非常喜欢它们。第一个是“Drop to
Frame”。有了这个功能,你可以回到过去;-),你可以轻松回到你曾经运行过的Java
stackframe中的位置。这对我来说非常有用,因为可能我错过了某一点,有了”Drop to Frame”功能,我可以轻松重新运行那段代码了。

导航: Step into Selection

第二个是“Step into
Selection”。这个功能非常简单,但是很多人都没有使用。你仅仅需要按下Ctrl+Alt,同时点击你想去的方法上点击,快捷方便。相比较“Step
Into”,“Step into Selection”更加方便。譬如假设你想进入某个有许多参数的方法,你可以使用一步就跳过所有参数的赋值。”Run to
line”也是个不错的功能。你只需要将鼠标放在那一行前面,然后点击”CTRL+R”。

导航:使用快捷键

如果你不再使用鼠标,你会变得更加有效率。至少你应该掌握以下的快捷键:

F5 – “Step Into”

F6 – “Step Over”

F7 – “Step Return”

F8 – “Resume”

Ctrl+Shift+B – “Toggle Breakpoint”

Ctrl+Shift+I – “Inspect”

断点视图:Watchpoints

是什么改变了变量?!有时创建watchpoint会有很大的帮助。当某个要监视的field的值改变时或是读到时,调试器会停下来。双击某个field,这个watchpoint显示在断点视图中,你可以编辑它的属性。你也可以设置hit
count,意思是当你输入的hit count已经达到了,调试器便会停下来。这个也适合于普通的断点。

清晰易读的对象

变量视图是使用toString()方法来显示一个对象的值,所以我们应该要写出清晰易读的toString()方法。java.lang.Object默认的toString()方法的javadoc也如此建议:





1

2

3

4

5

6

7

* Returns a string representation of the object. In general, the

* toString method returns a string that

* "textually represents" this object. The result should

* be a concise but informative representation that is easy for a

* person to read.

* It is recommended that all subclasses override this method.

[...]

你可以看一看commons-lang中的ToStringBuilder。它可以帮助你写出“良好的、前后一致的”toString()方法。


如果你不能修改toString()方法,譬如你使用框架,或是外来的API,在Eclipse中创建“Detail
Fomatter”可以帮到你。在变量视图中右击某个对象,然后点击“New Detail
Formatter…”。然后你便能够定义代码,之后这种类型的Object都用这种形式来显示。


原文链接: Codecentric 翻译: ImportNew.com- 唐小娟

Eclipse的调试功能的10个小窍门[转],布布扣,bubuko.com

时间: 2024-10-28 09:52:11

Eclipse的调试功能的10个小窍门[转]的相关文章

Eclipse的调试功能(转)

前言:可以很明确的说明,eclipse没有像vs那样的即时窗口来运行即时代码的功能. 调试的界面如下: 具体的调试步骤: 1.设置断点 在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上. 2.调试 (1)点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界面,然后先设置断点,按调试按钮则可以调试程序. (2)或者直接点击调试按钮,那个虫子样子的按钮,然后就会进入调试透视图的界面.前提你需要是要在程序中设置好断点. (3)或者右键单击该程序,选择debug as(调

提高编码技能的10个小窍门

你想成为一名程序员,并且正在为之奋斗,那么你努力的方式,比如做事方法.思维习惯都将会影响你会成为怎样的一名程序员. 那么,你需要成为一个天才才能学好编程吗?没有必要. 你必须建立自己的做事方式.需要学习一些(或更多的)技巧, 不断的在Google上搜索查询,与书成为朋友.有一长串的TODO需要遵循.我将在这里分享一些技巧,帮你提高编程技能. 1 尽可能地多做练习 坚持练习几个小时听起来很难, 但一旦喜欢上这种方式, 你会乐此不疲.你一定听说过熟能生巧.这对程序员来说是非常必要的. 这里有个问题.

10个小窍门,让你轻松准确搜索。

在今天,用户可以通过搜索引擎轻松找出自己想要的信息,但还是难以避免结果不尽如人意的情况.实际上,用户仅需掌握几个常用技巧即可轻松化解这种尴尬.下面介绍10个在进行Google搜索时可以使用的便捷技巧,其他搜索引擎也支持这10种技巧. 1.准确搜索最简单.有效的准确搜索方式是在关键词上加上双引号,在这种情况下,搜索引擎只会反馈和关键词完全吻合的搜索结果.比方说在搜索「Joe Bloggs」的时候,在没有给关键词加上双引号的情况,搜索引擎会显示所有分别和「Joe」以及「Bloggs」相关的信息,但这

10个SecureCRT 小窍门 - 你玩转几个?

10个SecureCRT 小窍门 - 你玩转几个? SecureCRT,相信不用我过多介绍了吧,一款通过telnet,ssh登录远端设备的终端软件. 无论是搞网络的,做系统的甚至写程序的,连接设备必用软件,容易上手,稳定性高,功能强大. 但是,面对SecureCRT密密麻麻的功能菜单,大家熟悉几个? 别把SecureCRT用成Putty 让我猜猜你平时怎么使用SecureCRT. 第一步:打开软件. 第二步:点开左边的会话管理栏,选择你要连接的设备. 第三步:双击连接,走你! 第四步:开始弹键盘

10个提升工作效率的Secure CRT小窍门 - 你玩转了几个?

10个SecureCRT 小窍门 - 你玩转几个? SecureCRT,相信不用我过多介绍了吧,一款通过telnet,ssh登录远端设备的终端软件. 无论是搞网络的,做系统的甚至写程序的,连接设备必用软件,容易上手,稳定性高,功能强大. 但是,面对SecureCRT密密麻麻的功能菜单,大家熟悉几个? 别把SecureCRT用成Putty 让我猜猜你平时怎么使用SecureCRT. 第一步:打开软件. 第二步:点开左边的会话管理栏,选择你要连接的设备. 第三步:双击连接,走你! 第四步:开始弹键盘

Eclipse调试Java的10个技巧

原文地址: http://www.oschina.net/question/82993_69439 在看这篇文章前,我推荐你看一下Eclipse 快捷键手册,我的eclipse版本是4.2 Juno. 先提三点 不要使用System.out.println作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志 1.条件断点 想象一下我们平时如何添加断点,通常的做法是双击行号的左边.在debug视图中,BreakPoint View将所有断点都列出来,但是我们可以添加一个bo

Eclipse debug 调试的几点技巧

在网上看到一篇关于Eclipse debug调试的文章,整理得比较全面,现转载如下: 先提三点 不要使用System.out.println作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志 1.条件断点 想象一下我们平时如何添加断点,通常的做法是双击行号的左边.在debug视图 中,BreakPoint View将所有断点都列出来,但是我们可以添加一个boolean类型的条件来决定断点是否被跳过.如果条件为真,在断点处程序将停止,否则断点被跳过, 程序继续执行. 2.

编绎调试HotSpot JVM及在Eclipse里调试HotSpot一些步骤

编绎整个OpenJDK要很久,而且有很多东西是不需要的.研究HotSpot的话,其实只要下HotSpot部分的代码就可以了. 下面简单记录下编绎调试HotSpot一些步骤. 一.编绎 进入hotsopt的make目录下: 1 cd code/cpp/openjdk/hotspot/make/ 用make help可以看到有很多有用的信息.当然查看Makefile文件,里面也有很多有用的注释. make help会输出当前的一些环境变量的设置,如果不对,自然编绎不过去. 设置环境变量: 1 2 3

Eclipse里面调试java总结

? 正所谓"工欲善其事必先利其器",会用Eclipse去调试可以帮助识别和解决应用程序缺陷,同时也可以帮助我们去阅读和理解一些源码是有极大的帮助的.可以极大的提高我们的工作效率.?  1.基础知识,熟悉Debug视图 认识debug视图,红色部分框为线程堆栈视图,黄色部分框为表达式.断点.变量视图,蓝色部分为代码视图.  线程堆栈视图 分别介绍一下这几个按钮的含义: 1.表示当前实现继续运行直到下一个断点,快捷键为F8. 2.表示打断整个进程 3.表示进入当前方法,快捷键为F5. 4.