知识大全 使用Eclipse调试Java程序的10个技巧
Posted 视图
篇首语:满堂花醉三千客,一剑霜寒十四州。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用Eclipse调试Java程序的10个技巧相关的知识,希望对你有一定的参考价值。
使用Eclipse调试Java程序的10个技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
你应该看过一些如《关于调试的N件事》这类很流行的帖子 假设我每天花费 小时在调试我的应用程序上的话 那累积起来的话也是很大量的时间 由于这个原因 用这些时间来重视并了解所有使我们调试更方便的功能 那能为你省下一些时间 也将会使你的生活更安逸 轻松 同时也表明其它关于此主题的帖子也是很有价值的
不要调试太多
一个关于调试的疯狂声明作为开头 但它必须是要说的!尝试切分一下你那复杂的逻辑成多个独立的单元 并编写单元测试来检测你代码的正确性 我想像如下这样的流程应该是发生得非常频繁的 一些人通过大型web应用程序点击 填写多个表单 切换到不同的页面 正在最后的页面上检测工个计算逻辑和实现这个调试视图中的大部分逻辑 在启动你的tomcat之前总是问你自己 有没有方法使用一个单元测试来检测这些行为?你在过去这些时间可以不知道或已忘记这些 但从现在开始 我们将要关注一些eclipse的调试技巧 你会发现有大量的关于良好代码设计的好东西
断点视图 条件断点
如果你只对应用中的某部分感兴趣的话 这个功能非常有用 例如 如果你要在第 次循环的时候检查程序 或者在一个抽象父类中调试某些功能 而你只关注其中一个具体的实现 你可以在断点视图中设置条件 或者通过代码旁边的蓝色断点标记的右键菜单( 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 就可以了
导航器 使用键盘
如果避免使用鼠标的话 你的操作速度会更快 你至少应该如下的快捷键
F – 单步进入
F – 单步执行并跳过
F – 单步执行并返回
F – 继续执行
Ctrl+Shift+B – 添加断点
Ctrl+Shift+I – 检查
断点视图 Watchpoints
如果改变这个变量会有什么结果?! 有时候创建一个watchpoint对于调试会非常有用 调试器会停止 不管这个被观察的字段是被修改还是被读取 你可以自己来配置决定 你只需双击一个字段 然后你就可以在断点视图中看到watchpoint 并且可以编辑它的属性 你甚至可以一个访问次数 这意味着当变量被访问的次数达到这个数量的时候 调试器会停止 这对于普通的断点也适用
友好的可读的对象
变量视图是使用对象的toString方法来现实对应的值 因为这个原因 如果提供友好的toString方法实现 对调试来说会非常有用 在javadoc中关于java lang Object的默认toString实现 也是这样推荐的
返回一个表示该对象的字符串 通常<code>toString</code>方法返回这么一个字符串 字面表示 该对象 返回结果必须是一个简洁却富含可表示该对象的信息 并且友好可读取 我们推荐所有的子类都覆蓋这个方法
你可以参考mons lang中的 ToStringBuilder 它提供一些功能来编写 (引用自javadoc ) 良好并连贯 的toString方法
默认的ToString
默认的ToStringBuilder例子
ToStringBuilder例子 – 多行文本风格
cha138/Article/program/Java/ky/201311/28450
相关参考
Java程序员应该知道的10个调试技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 调试可以帮
Eclipse远程调试Java 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以下谈论的是App
在Eclipse中运行带参数的Java程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi
开发一个调试JSP的Eclipse插件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JAVA调
JAVA程序员应该了解的10个JSP标签库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
虽然集成开发环境(IDE)可以为图形化应用程序提供很好的调试设置但是它不允许你调试多线程的Java服务器程序 幸运的是有几个工具可以做到例如日志应用程序接口(API)和Java调试器
Eclipse项目调试参数设定 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 调试Eclipse
类装入器负责把类装入Java虚拟机(JVM)简单的应用程序可以用Java平台内置的类装入工具装入类更复杂的应用程序则倾向于定义自己定制的类装入器但是不论使用哪种类装入器在类装入过程中都可能发生许多
如何在Eclipse中调试JBoss应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一般来说在J
技术分享配置Eclipse进行远程调试二(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 配