`
zhaohaolin
  • 浏览: 1012542 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Eclipse debug 框架介绍

    博客分类:
  • JAVA
阅读更多

Debug Framework>>.关键词 Launching( 运行器 )/debug/breakpoint( 断点 )

, 基本 debug

1.Launching

Eclipse 可以通过 IDE 在开发过程中运行和 debug 代码 , 并且可以扩展 .

1>launching 是一个十分便利的工具 包括 :

. 运行可执行程序

. 使用 JVM 运行一个程序

. 线程绑定到一个存在的 server

. Eclipse JVM 中运行一个程序

. 使用 debug 平台运行任何一个注册到 launch 上的类

2> 特别提供一些便利的功能 :

. 产生一个 O/S 线程

. 当程序运行时产生连续信息

. 一个用于运行参数可编辑的框架

. 一个运行实体和他们的 I/O 的相互交互的 VIEW

. 一个可扩展的运行模式 ( :run, debug, profile )

. 选择敏感动作来运行

. 事件分派

3> 运行器配置窗口

.Launch Configuration 关于如何运行的描述

.Tab Group 一系列运行配置的 tabs

.Mode 使用那种模式运行 (run, debug, profile )

 

4> 运行器运行窗口

.Launch Object 运行线程和 debug 目标容器

.Process O/S 线程的抽象

.Debug Target debug 的线程抽象

 

5> 运行器的右键菜单

.Launch Delegate 执行运行器

.Launch Shortcut 用于选择运行器的 actions

 

注意 :

. 运行配置状态和运行器委派行为是独立的 , 并且可以提升装载插件的 lazy .

.debug 平台提供一个可执行运行配置面板 , 无论他们是否被运行器装载 , 它们都可以在 workbench 中装载和他们的运行配置并且需要运行动作

6> 运行模型

 

2. the debug model

 

1>      什么是 debug 运行器

 

2>debug 模型

 

3>debug 事件

(1) 一个 debug 是描述了在 debug 过程出现错误或者是一个线程中的事件 . 用户接口需要实现和产生 debug 事件的模型和线程

并且要通过 org.eclipse.debug.core.DebugEvent 指明 . 例如 :

.IProcess 创建 , 中止

.IDebugTarget 创建 , 中止 , 悬挂 , 重新开始

.IThread 创建 , 中止 , 悬挂 , 重新开始

(2) 悬挂 , 重新开始 有详细的代码 :

.STEP_END, BREAKPOINT, CLIENT_REQUEST, EVALUATION,

EVALUATION_IMPLICIT, UNSPECIFIED

.STEP_INTO, STEP_OVER, STEP_RETURN, CLIENT_REQUEST,

EVALUATION, EVALUATION_IMPLICIT, UNSPECIFIED

(3)eclipse 平台是固有的线程安全的 , 因此保证所有类是线程安全的 .

通过设计可以明示或者是暗示线程同步

(4) 用户接口的 actions, 例如 step 命令是用过用户接口线程发出的

.Actions 必须是 non-blocking.

. 我们这里使用 step 作为例子 , 因为它们看起来 step

应该被 block, 以便它们发出 step debug 命令等待程序解释器 step 这一步 , 但是那样是错误行为 .

取而代之的是 , 解释器通过激发一个 debug 模型事件进行通讯交互

(5) 一个 SUSPEND 事件使用 BREAKPOINT 或者 CLIENT_REQUEST 来激发

. 转换 perspectives 和打开 debug 视图是可选的

.debug 视图是扩展挂起线程并且选择它的最上端堆栈帧

. 选择一个堆栈帧触发器 :

.. 源文件查询 , 添加一个指示点到 editor

.. 变量 view 窗口刷新

.. 一个 SUSPEND 事件是使用 STEP_END 激发

.. 最上端堆栈帧被选择并且触发源文件查询和变量 view 窗口刷新 ; 线程和堆栈帧标签被刷新

.. step 运行过程中改变 perspectives 时候 step 状态不发生变化 .

. 当视图刷新它维持当前选择并且要基于相同元素扩展其状态

.. 如果元素维持状态它将被显示

.. 等式可以被执行 , 它们可以产生很少垃圾的 ID

. 在交叉重复使用挂起状态的 debug 元素可以被重新使用

.. 在同一线程中线程和堆栈帧可以在同一个帧中描述

.. 变量的参考对象和值将在同一个对象中描述

. 使用 CLIENT_REQUEST 激活 RESUME 事件

..Debug 视图可以 collapses 所有挂起的线程

.. 可以选择变成空的堆栈帧 , 清除变量 view 窗口

.. 清除已经重新开始的指示点

. 使用 STEP_INTO / OVER / RETURN 激活 RESUME 事件

.. 线程和帧在 dubug 窗口保持 expanded/selected 状态

.. 如果 SUSPEND/STEP_END 500ms 内将不被接受 :

.. 线程图标和标签被重新更新显示

.. 堆栈帧图标将被重新显示

3. breakpoints

1>step 请求遇到 breakpoint 发生什么 ?

(1) 依靠优先体系

(2)Java debugger 当遇到一个 breakpoint 时候必须从 JVM 中清除这个 step 请求 , 否则在下一次使用之前必须完成这一步 .

(3) step 过程中变量被改变 它们将用红色重新渲染

  . 变量必须实现 hasValueChanged() 方法

  . 引用中说 : returns whether the value of this variable has changed

since the last suspend event”

(4) Java debugger 中实现

.debug 对象要保持一定数量的挂起多少次 ; 这个数量在每次挂起都要增加 , 及时的显示 : 0, 1, 2,

. 每一次一个变量得到新值都要检查与最近一次访问时候是否发生变化 , 如果是这样 , 这个数量要跟 bebug 目标挂起次数一致

. 当变量的 counter == debug counter 它的值将被改变

2> 什么是 breakpoints?

. 它是在制定位置挂起或者在某种条件下的一种方式

. 行断点 , 观察点 , 运行到某一行等各种断点 .

3> 断点提供了多种特点 :

. 添加 , 删除 , 通知修改

.Persistence of breakpoints across workbench invocations

. 临时地略过断点

.Retargettable actions for creating breakpoints

4>breakpoint

(1)     断点管理器保存和持久化断点

(2)     断点

. 提供用于操作的 API (enable, set hit count, 等等 )

. 使用一个标志存储它的属性

(3)debug 目标

. 在安装 , 移除和更新时候通知断点作出反应

 

(3)     breakpoint 模型

(4)    

........................ 待续

分享到:
评论

相关推荐

    Eclipse 的 Debug 介绍与技巧

    ### Eclipse的Debug介绍与技巧 #### 一、Eclipse调试介绍 在软件开发的过程中,调试是必不可少的一个环节。几乎所有的程序开发都会面临错误排查的问题,因此掌握高效的调试技巧至关重要。Eclipse作为一款广泛使用...

    使用eclipse远程debug .

    - 如果应用已经运行,可以临时暂停应用,添加上述参数后再继续运行,或者根据应用框架(如Spring Boot)的文档来配置远程Debug。 3. **连接并开始Debug** - 回到Eclipse的Debug配置,确认所有设置无误后,点击`...

    debug-log4j-eclipse

    首先,你需要在Eclipse中启动debug模式,可以通过点击绿色的虫子图标或者右键项目选择“Debug As” -> “Java Application”。然后,在代码中设置断点(在行号旁边单击),当程序执行到断点时会暂停,此时可以查看...

    Eclipse中Debug调试及视图.pdf

    Eclipse 中 Debug 调试及视图 Eclipse 中 Debug 调试及视图是 Eclipse 平台中的一个标准插件集,提供了一个内置的 Java 调试器,可以提供所有标准的调试功能,包括分步执行、设置断点和值、检查变量和值、挂起和...

    Eclipse开发工具介绍

    Eclipse开发工具介绍 Eclipse开发工具是一种集成开发环境(IDE),提供了大量的功能和特性来帮助开发者快速高效地开发Java应用程序。下面是Eclipse开发工具的主要知识点: 1. 认识Eclipse Eclipse是一种开源的集成...

    Eclipse调试器和Debug视图

    ### Eclipse调试器和Debug视图知识点详解 #### 一、Eclipse SDK与内置Java调试器 **Eclipse SDK**(Software Development Kit)是专为Java开发设计的一个强大平台,其中包括了JDT(Java Development Tools)组件,...

    eclipse如何配置ofbiz下的debug

    在IT行业中,Eclipse是一款广泛使用的Java集成开发环境(IDE),而OFBiz是一个开源的企业级应用框架,主要用于构建电子商务和企业信息系统。配置Eclipse来调试OFBiz项目是开发者日常工作中的一项重要任务。以下将...

    eclipse RCP入门示例介绍

    ### Eclipse RCP 入门示例介绍 #### 一、Eclipse 概述 Eclipse 是一款由 IBM 开发并贡献给开源社区的集成开发环境(Integrated Development Environment, IDE),自发布以来,迅速成为了最受欢迎的 Java 开发工具...

    springboot远程调试(eclipse篇)

    本文将详细介绍如何配置 Eclipse 来实现 Spring Boot 的远程调试。 #### 一、服务器端配置 为了能够进行远程调试,我们需要在服务器上启动 Spring Boot 应用时加入特定的 JVM 参数来启用调试模式。 ##### 启动...

    Debug---Eclipse

    标题中的"Debug---Eclipse"指的是在Eclipse集成开发环境中进行调试的相关知识。Eclipse是一款广泛使用的开源Java IDE,它提供了强大的调试工具,使得开发者能够有效地查找和修复代码中的错误。接下来,我们将深入...

    eclipse flex flashplayer debug安装

    标题 "Eclipse Flex FlashPlayer Debug 安装" 涉及到的是在开发环境中设置Adobe Flex与Flash Player调试器的过程。这个过程对于Flex开发者来说至关重要,因为它允许他们在Eclipse集成开发环境中对Flash应用程序进行...

    The Launching Framework in Eclipse

    本文将深入探讨Eclipse的启动框架,介绍构建启动插件所需的API,并通过一个示例来展示如何使用该API开发启动器。 #### Eclipse插件架构与启动框架 为了更好地理解本文内容,读者需要具备Eclipse插件架构的基本了解...

    eclipse免安装绿色版

    - Eclipse作为Java开发的主要IDE,提供了许多帮助学习和开发Java的特性,如代码提示、自动格式化、JUnit测试框架等。 6. **使用Eclipse进行Java开发** - 创建Java项目:在Eclipse中,你可以通过"File > New > ...

    eclipse api 帮助文档

    6. **调试框架**:`org.eclipse.debug`包提供了调试框架,支持多种语言的调试,包括Java、C/C++等。它提供了断点管理、变量查看、调用堆栈等功能。 7. **构建工具**:`org.eclipse.build`和`org.eclipse.ant.core`...

    myeclipse的DEBUG调试

    **Eclipse Debug视图**是Eclipse IDE中的一个重要组成部分,用于管理和监控调试会话。它能显示每个调试目标中挂起线程的堆栈框架,以及每个运行目标的进程。每个线程被表示为树状结构中的一个节点,当线程处于挂起...

    eclipse整合spring插件

    标题“eclipse整合spring插件”指的是将Spring框架的开发工具集成到Eclipse IDE中,使得开发者可以在Eclipse环境中享受到便捷的Spring项目创建、配置管理以及调试等功能。 描述中提到“只需解压就可以整合”,这...

    Eclipse3.6 1(6-3)

    - `org.eclipse.debug.ui.source_3.7.101.v20110817_r371.jar`:包含了Eclipse调试器的源代码,提供源码级别的调试能力。 - `org.eclipse.team.ui_3.6.100.I20110525-0800.jar`:团队协作的用户界面组件,帮助用户...

    Eclipse介绍.pdf

    Eclipse的核心是一个框架和一组服务,它们允许开发者通过插件来构建定制化的开发环境。Eclipse项目由Project Management Committee (PMC)管理,它下设三个主要子项目:Platform、JDT和PDE。Platform子项目包含诸如...

Global site tag (gtag.js) - Google Analytics