【php精品源码栏目提醒】:本文主要为网学会员提供“Eclipse_Debug_调试技巧入门 - 软件工程”,希望对需要Eclipse_Debug_调试技巧入门 - 软件工程网友有所帮助,学习一下!
Eclipse 调试器和 Debug 视图Eclipse SDK 是针对 Java 开发工具(Java Development Tools,JDT)的项目,它具有一个内置的 Java 调试器,可以提供所有标准的调试功能,包括分步执行、设置断点和值、检查变量和值、挂起和恢复线程的功能。
除此之外,还可以调试远程机器上运行的应用程序。
Eclipse 平台很健壮,因为其他编程语言可以将该平台提供的调试工具用于各自的语言运行时。
正如下文所示,同一个 Eclipse Debug 视图也可以用于 C/C 编程语言。
Eclipse 平台工作台及其工具是围绕 JDT 组件构建的,该组件为 Eclipse 提供了下列特性: 项目管理工具 透视图和视图 构造器、编辑器、搜索和构建功能 调试器Eclipse 调试器本身是 Eclipse 内的一个标准插件集。
Eclipse 还有一个特殊的 Debug 视图,用于在工作台中管理程序的调试或运行。
它可以显示每个调试目标中挂起线程的堆栈框架。
程序中的每个线程都显示为树中的一个节点,Debug 视图显示了每个运行目标的进程。
如果某个线程处于挂起状态,其堆栈框架显示为子元素。
在使用 Eclipse 调试器之前,假定您已经安装了合适的 Java SDK/JRE(我推荐使用 JavaVM V1.4)和 Eclipse Platform SDK V3.3,而且两者的运行都没问题。
一般来说,先用Eclipse 示例测试一下调试选项比较好。
如果想开发和调试 C/C 项目,还需要获得并安装 C/C 开发工具(C/C Development Tools,CDT)。
关于 Java SDK/JRE、Eclipse平台和示例以及 CDT,请参阅 参考资源。
图 1 显示了 Debug 透视图的一般视图。
图 1. Eclipse Debug 透视图的一般视图调试 Java 语言程序在可以调试项目前,需要干净地编译和运行代码。
首先,需要为应用程序创建一个运行配置,确保应用程序可以正确启动。
然后,需要通过 Run Debug 菜单以类似的方式设置调试配置。
还需要选择一个类,将它作为调试的主 Java 类来使用(请参见图 2)。
您可以按照自己的意愿为单个项目设置多个调试配置。
当调试器启动时(从 Run Debug),会在一个新的窗口中打开,这时就可以开始调试了。
图 2. 在调试配置中设置项目的主 Java 类接下来,将讨论 Eclipse 中的一些常用调试实践。
设置断点在启动应用程序进行调试时,Eclipse 会自动切换到 Debug 透视图。
毫无疑问,最常见的调试步骤是设置断点,这样可以检查条件语句或循环内的变量和值。
要在 Java 透视图的Package Explorer 视图中设置断点,双击选择的源代码文件,在一个编辑器中打开它。
遍历代码,将鼠标放在可疑代码一行的标记栏(在编辑器区域的左侧)上,双击即可设置断点。
图 3. 编辑器左侧看到的两个断点现在,从 Run Debug 菜单启动调试会话。
最好不要将多条语句放在一行上,因为会无法单步执行,也不能为同一行上的多条语句设置行断点。
图 4. 视图中左侧空白处的箭头指示当前正在执行的行还有一个方便的断点视图来管理所有的断点。
图 5. 断点视图条件断点一旦了解到错误发生的位置,您可能想要知道在程序崩溃之前,程序在做什么。
一种方法就是单步执行程序的每行语句。
一次执行一行,直到运行到可疑的那行代码。
有时,最好只运行一段代码,在可疑代码处停止运行,在这个位置检查数据。
还可以声明条件断点,它在表达式值发生变化时触发(请参见图 6)。
除此之外,在输入条件表达式时,也可以使用代码帮助。
图 6. 设置条件断点触发器计算表达式的值为了在 Debug 透视图的编辑器中计算表达式的值,选择设置了断点的那行代码,在上下文菜单中,通过 CtrlShiftI 或右键单击您感兴趣的变量(参见图 7)选择 Inspect 选项。
在当前堆栈框架的上下文中会计算表达式的值,在 Display 窗口的 Expressions 视图中会显示结果。
图 7. 通过 Inspect 选项计算表达式的值剪切活动代码Display 视图允许您以剪切类型的方式处理活动代码(参见图 8)。
要处理一个变量,在Display 视图中输入变量名即可,视图会提示您一个熟悉的内容助手。
图 8. Display 视图当调试器停止在一个断点处时,您可以从 Debug 视图工具栏(参见图 9)中选择 Step Over选项,继续调试器会话。
该操作会越过高亮显示的那行代码,继续执行同一方法中的下一行代码(或者继续执行调用当前方法的那个方法的下一行代码)。
执行上一步后发生改变的变量会用某种颜色高亮显示(默认是黄色)。
颜色可以在调试首选项页面中改变。
图 9. 改变颜色的变量要在 Debug 视图中挂起执行线程,选择一个运行线程,单击 Debug 视图工具栏中的 Suspend。
该线程的当前调用堆栈就会显示出来,当前执行的代码行就会在 Debug 透视图中的编辑器中高亮显示。
挂起一个线程时,将鼠标放在 Java 编辑器中的变量上,该变量的值就会在一个小的悬停窗口中显示出来。
此时,该线程的顶部堆栈框架也会自动选中,其中的可视变量也会在 Variables 视图中显示出来。
您可以通过单击 Variables 视图中合适的变量名来检查变量。
热交换错误修正:动态代码修正如果运行的是 Java 虚拟机(Java Virtual Machine,JVM)V1.4 或更高的版本,Eclipse 支持一个叫做热交换错误修正(Hotswap Bug Fixing)的功能,JVM V1.3 或更低的版本不支持该功能。
该功能允许在调试器会话中改变源代码,这比退出应用程序、更改代码、重新编译、然后启动另一个调试会话更好。
要利用该功能,在编辑器中更改代码后重新调试即可。
由于 JVM V1.4 与 Java 平台调试器架构(Java Platform Debugger Architecture,JPDA)兼容,所以才有可能具备该功能。
JPDA 实现了在运行的应用程序中替换经过修改的代码的功能。
如果应用程序启动时间较长或执行到程序失败的地方时间很长,那么这一点特别有用。
如果在完成调试时,程序还没有全部执行一遍,在 Debug 视图的上下文菜单中选择Terminate 选项。
容易犯的一个错误是在调试器会话中使用 Debug 或 Run,而不是Resume。
这样做会启动另一个调试器会话,而不是继续当前会话。
远程调试Eclipse 调试器提供了一个有趣的选项,可以调试远程应用程序。
它可以连接到一个运行Java 应用程序的远程 VM,将自己连接到该应用程序上去。
使用远程调试会话与使用本地调试会话大致相同。
但是,远程调试配置需要在 Run Debug 窗口中配置一些不同的设置。
需要在左侧视图中先选择 Remote Java Application 选项,然后单击 New。
这样就创建了一个新的远程启动配置,会显示出三个选项卡:Connect、Source 和 Common。
在 Connect 选项卡的 Project 字段, 在 选择在启动搜索源代码时要引用的项目。
Connect选项卡的 Host 字段,输入运行 Java 程序的远程主机的 IP 地址或域名。
在 Connect 选项卡的 Port 字段,输入远程 VM 接收连接的端口。
通常,该端口在启动远程 VM 时指定。
如果想让调试器决定在远程会话中 Terminate 命令是否可用,可以选择 Allow terminationof remote VM 选项。
如果希望可以终止连接的 VM,则选择该选项。
现在,在您选择 Debug选项时,调试器会尝试连接到指定地址或端口的远程 VM, 结果会在 Debug 视图中显示出来。
如果启动程序不能连接到指定地址的 VM,会出现一条错误信息。
通常来说,是否可以使用远程调试功能完全取决于远程主机上运行的 Java VM。
图 10 显示了一个远程调试会话的连接属性设置。
图 1
上一篇:
一周学会Linux实战_第一讲_
下一篇:
初中团支部学期工作总结