`
nail2008
  • 浏览: 46605 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用 Eclipse 平台进行调试 及快捷键

阅读更多

本文转自 v522zy 的blog  http://hi.baidu.com/v522zy/blog/item/6c2eb618143a310235fa4145.html

这本是IBM上的一篇关于Eclipse debug的文章,原作者是 “Pawel Leszek 最初于 2003 年 5 月撰写了下文,后来由 Chris Aniszczyk 于 2007 年 4 月进行了更新。” http://www.ibm.com/developerworks/cn/opensource/os-ecbug/index.html?S_TACT=105AGX52&S_CMP=techcto#Resources

而v522zy加入了自身的总结和快捷键部分,我是在他的blog上看到本文。感谢他们所做的工作!

 

 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(我推荐使用 Java VM 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 透视图的一般视图
Eclipse Debug 透视图的一般视图

调试 Java 语言程序

在可以调试项目前,需要干净地编译和运行代码。首先,需要为应用程序创建一个运行配置,确保应用程序可以正确启动。然后,需要通过 Run > Debug 菜单以类似的方式设置调试配置。还需要选择一个类,将它作为调试的主 Java 类来使用(请参见图 2)。您可以按照自己的意愿为单个项目设置多个调试配置。当调试器启动时(从 Run > Debug),会在一个新的窗口中打开,这时就可以开始调试了。


图 2. 在调试配置中设置项目的主 Java 类
在调试配置中设置项目的主 Java 类

接下来,将讨论 Eclipse 中的一些常用调试实践。

设置断点

在 启动应用程序进行调试时,Eclipse 会自动切换到 Debug 透视图。毫无疑问,最常见的调试步骤是设置断点,这样可以检查条件语句或循环内的变量和值。要在 Java 透视图的 Package Explorer 视图中设置断点,双击选择的源代码文件,在一个编辑器中打开它。遍历代码,将鼠标放在可疑代码一行的标记栏(在编辑器区域的左侧)上,双击即可设置断点。


图 3. 编辑器左侧看到的两个断点
编辑器左侧看到的两个断点

现在,从 Run > Debug 菜单启动调试会话。最好不要将多条语句放在一行上,因为会无法单步执行,也不能为同一行上的多条语句设置行断点。


图 4. 视图中左侧空白处的箭头指示当前正在执行的行
视图中左侧空白处的箭头指示当前正在执行的行

还有一个方便的断点视图来管理所有的断点。


图 5. 断点视图
断点视图

条件断点

一 旦了解到错误发生的位置,您可能想要知道在程序崩溃之前,程序在做什么。一种方法就是单步执行程序的每行语句。一次执行一行,直到运行到可疑的那行代码。 有时,最好只运行一段代码,在可疑代码处停止运行,在这个位置检查数据。还可以声明条件断点,它在表达式值发生变化时触发(请参见图 6)。除此之外,在输入条件表达式时,也可以使用代码帮助。


图 6. 设置条件断点触发器
设置条件断点触发器

计算表达式的值

为了在 Debug 透视图的编辑器中计算表达式的值,选择设置了断点的那行代码,在上下文菜单中,通过 Ctrl+Shift+I 或右键单击您感兴趣的变量(参见图 7)选择 Inspect 选项。在当前堆栈框架的上下文中会计算表达式的值,在 Display 窗口的 Expressions 视图中会显示结果。


图 7. 通过 Inspect 选项计算表达式的值
通过 Inspect 选项计算表达式的值

剪切活动代码

Display 视图允许您以剪切类型的方式处理活动代码(参见图 8)。要处理一个变量,在 Display 视图中输入变量名即可,视图会提示您一个熟悉的内容助手。


图 8. Display 视图
The Display view

当 调试器停止在一个断点处时,您可以从 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。这样做会启动另一个调试器会话,而不是继续当前会话。

来源于 IBM;



1.Step Into (also F5) 跳入
2.Step Over (also F6) 跳过
3.Step Return (also F7) 执行完当前method,然后return跳出此method
4.step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点(设置Filter:window-preferences-java-Debug-step Filtering)
5.resume 重新开始执行debug,一直运行直到遇到breakpoint。
    例如 :A和B两个断点,debug过程中发现A断点已经无用,去除A断点,运行resume就会跳过A直接到达B断点。
6.hit count 设置执行次数 适合程序中的for循环(设置 breakpoint view-右键hit count)
7.inspect 检查 运算。执行一个表达式显示执行值
8.watch 实时地监视对象、方法或变量的变化

9.我们常说的断点(breakpoints)是指line breakpoints,除了line breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method breakpoint ,exception breakpoint.
10.field breakpoint 也叫watchpoint(监视点) 当成员变量被读取或修改时暂挂
11.添加method breakpoint 进入/离开此方法时暂挂(Run-method breakpoint)
12.添加Exception breakpoint 捕抓到Execption时暂挂(待续...)
断点属性:
   1.hit count 执行多少次数后暂挂 用于循环
   2.enable condition 遇到符合你输入条件(为ture\改变时)就暂挂
   3.suspend thread 多线程时暂挂此线程
   4.suspend VM 暂挂虚拟机

13.variables 视图里的变量可以改变变量值,在variables 视图选择变量点击右键--change value.一次来进行快速调试。
14.debug 过程中修改了某些code后--〉save&build-->resume-->重新暂挂于断点

15.resume 当debug调试跑出异常时,运行resume,重新从断点开始调试
16.如果一行有很多方法,
当第一次按F5键就跳入这一行第一个方法,F6一步一步调试,F7跳出这方法.
当第二次按F5键就跳入这一行第二个方法,F6一步一步调试,F7跳出这方法.
以此类推.想进入这一行第几个方法,就按几次F5和F7.

分享到:
评论
1 楼 qinglintan 2010-03-04  
学习了

相关推荐

    eclipse debug调试的快捷键和常用快捷键

    在软件开发过程中,使用Eclipse进行调试是一项非常重要的技能。本文将详细介绍Eclipse中与Debug相关的快捷键以及其他常用的快捷键,帮助开发者提高工作效率。 #### 一、Debug调试相关的快捷键 1. **F5**: 步入...

    Eclipse 断点调试快捷键

    本文将详细介绍Eclipse中的断点调试快捷键及其使用方法,尤其适合初级开发者快速上手。 #### 一、基本调试快捷键 1. **F5**:逐步执行(Step Over)。此快捷键用于单步执行代码,当执行到函数调用时不会进入函数...

    eclipse和IDEA快捷键

    **Eclipse与IDEA在运行与调试方面的快捷键对比:** - **启动调试** - **Eclipse**: `Alt+Shift+F9` - **IDEA**: `Alt+Shift+F9` - **启动运行** - **Eclipse**: `Alt+Shift+F10` - **IDEA**: `Alt+Shift+F10` ...

    Eclipse_断点调试快捷键

    ### Eclipse 断点调试快捷键详解 #### 一、概览 本文档旨在详细介绍 Eclipse 中与断点调试相关的快捷键及其使用场景,帮助 Android 开发者更高效地进行开发工作。通过掌握这些快捷键,开发者可以更加专注于逻辑的...

    Eclipse智能提示及快捷键

    ### Eclipse智能提示及快捷键详解 #### 一、Eclipse智能提示配置 **1.... 在Eclipse中,Java智能提示是一项...以上就是关于Eclipse智能提示及快捷键的详细介绍,希望能够帮助开发者更加高效地使用Eclipse进行开发工作。

    ECLIPSE调试的快捷键

    下面我们将详细探讨Eclipse中的调试快捷键及其用途,帮助你更好地理解和掌握这些快捷键,提升你的编程效率。 1. **Ctrl+Shift+B**:这个快捷键用于在当前光标所在的行设置或取消断点。断点是调试过程中的关键元素,...

    eclipse的使用技巧和快捷键大全

    以上只是Eclipse使用的一部分技巧和快捷键,实际操作中,根据提供的"Eclipse快捷键大全.doc"和"eclipse的使用技巧.doc"文档,你将能更深入地了解和掌握Eclipse,从而提升开发效率,享受编程的乐趣。

    debug下的调试方法 eclipse快捷键大全

    以上就是Eclipse调试方法的一些核心内容,熟练掌握这些技巧,能让你在面对复杂的程序问题时更加游刃有余。在实际开发过程中,不断实践和探索,你会发现Eclipse的强大不仅仅在于它的快捷键,更在于它对开发流程的全面...

    Eclipse IDE使用技巧及快捷键大全

    本文分享了Eclipse IDE的一些实用技巧,包括利用快捷键提高编码效率(如Ctrl + D删除当前行)、快速查找文件和类(如Ctrl + Shift + R查找文件)、使用重构功能改善代码设计(如Ctrl + Alt + R重命名)、借助强大...

    Eclipse实用快捷键大全.txt

    以下是从“Eclipse实用快捷键大全.txt”文件中提取并整理的关键知识点,涵盖文件操作、编辑器功能、代码导航、重构与调试等方面。 #### 文件操作 - **Ctrl+C**: 复制选定的文本或元素。 - **Ctrl+V**: 粘贴已复制的...

    eclipse 快捷键(介绍常用快捷键)

    10. **运行与调试快捷键**: - 单步返回:`F7` - 单步跳过:`F6` - 单步跳入:`F5` - 单步跳入选择:`Ctrl+F5` - 调试上次启动:`F11` - 继续:`F8` - 使用过滤器单步执行:`Shift+F5` - 添加/去除断点:`...

    eclipse中的一些常用快捷键

    #### 三、调试快捷键 **【Ctrl+Shift+B】** - **功能描述**:在当前行设置或取消断点。 - **应用场景**:在调试代码时,设置断点可以帮助开发者逐步执行代码并观察变量变化。 **【F11】、【Ctrl+F11】** - **功能...

    Eclipse快捷键大全.

    ### Eclipse 快捷键大全详解 #### 一、编辑与操作类快捷键 **Ctrl+1**:自动修复代码中的错误或警告。 **Ctrl+D**:删除当前行。 **Ctrl+Alt+Shift+Enter**:在当前行下方创建新行。 **Alt+Down/Up**:移动当前...

    android开发--详解eclipse debug && eclipse快捷键

    以上就是关于Eclipse调试功能及快捷键的详细介绍。掌握这些技能可以帮助开发者更高效地完成Android应用程序的开发与测试工作。此外,通过连接真机进行调试以及使用Log记录信息,可以进一步提高开发效率。希望本文档...

    IDEA转Eclipse快捷键的jar包

    在IT行业中,开发工具的选择...对于那些希望在Eclipse环境中继续使用IDEA快捷键的程序员,这是一个不容忽视的资源。同时,这也反映出软件开发领域的一个趋势:工具的定制化和互操作性,以满足开发者日益多样化的需求。

    eclipse快捷键及设置

    Eclipse是一款广泛使用的Java集成开发环境(IDE),它提供了丰富的功能和高度可定制性,其中快捷键的设置是提升开发效率的重要环节。本篇将详细探讨Eclipse中的快捷键及其设置方法。 首先,Eclipse的快捷键是其高效...

    Eclipse 3_1 M3 快捷键

    Eclipse 3.1 M3是该平台的一个早期版本,它引入了许多功能和改进,以提升开发效率。快捷键在Eclipse中扮演着至关重要的角色,它们能够帮助程序员快速执行常见的编辑、导航和重构任务,从而显著提高编程速度。 一、...

    eclipse 调试快捷键

    ### Eclipse调试快捷键详解 ...以上就是关于Eclipse调试快捷键的一些详细介绍,希望能够帮助你在日常开发工作中更加高效地使用Eclipse。这些快捷键不仅可以提高你的编程效率,还能让你在调试过程中更加得心应手。

    Eclipse软件经常使用的快捷键

    接下来是调试快捷键: 1. 【Ctrl+Shift+B】:设置或取消断点,用于调试过程中的代码暂停点。 2. 【F11】:启动调试,直接调试上次运行的程序。 3. 【Ctrl+F11】:启动运行,直接运行上次运行的程序。 4. 【F5】...

Global site tag (gtag.js) - Google Analytics