`

JPDA:Java平台调试架构

阅读更多
  Java Platform Debugger Architecture(JPDA:Java平台调试架构) 由Java虚拟机后端和调试平台前端组成
  1.Java虚拟机提供了Java调试的功能
  2.调试平台通过调试交互协议向Java虚拟机请求服务以对在虚拟机中运行的程序进行调试

  JPDA的构架
  JPDA通过两个接口和协议来完成如上的说明,分别是JVMTI(Java虚拟机工具接口)、JDWP(Java调试连线协议)和JDI(Java调试接口)。
  1.JVMTI定义了虚拟机应该提供的调试服务,包括调试信息(Information譬如栈信息)、调试行为(Action譬如客户端设置一个断点)和通知(Notification譬如到达某个断点时通知客户端),该接口由虚拟机实现者提供实现,并结合在虚拟机中
    2.JDWP定义调试服务和调试器之间的通信,包括定义调试信息格式和调试请求机制
    3.JDI在语言的高层次上定义了调试者可以使用的调试接口以能方便地与远程的调试服务进行交互,Java语言实现,调试器实现者可直接使用该接口访问虚拟机调试服务。

  运行方式
  当虚拟机的调试服务运行时,虚拟机作为调试的服务提供端,监听一个连接,而调试器通过该连接与虚拟机进行交互。目前,Windows平台的JVM提供了两种方式的连接:共享内存和 Socket连接,共享内存的服务提供端和调试端只能位于同一台机,而Socket连接则支持不同异机调试,即远程调试。

  虚拟机参数设置
  1.启用调试服务
    -Xdebug 启用调试
    -Xrunjdwp:<sub-options> 加载JVM的JPDA参考实现库
  2.Xrunjdwp子参数(sub-options)配置
    Xrunjdwp子参数的配置格式如下
    -Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...

  几个例子
  -Xrunjdwp:transport=dt_socket,server=y,address=8000
  在8000端口监听Socket连接,挂起VM并且不加载运行主函数直到调试请求到达
  -Xrunjdwp:transport=dt_shmem,server=y,suspend=n
  选择一个可用的共享内存(因为没有指address)并监听该内存连接,同时加载运行主函数
  -Xrunjdwp:transport=dt_socket,address=myhost:8000
  连接到myhost:8000提供的调试服务(server=n,以调试客户端存在),挂起VM并且不加载运行主函数
  -Xrunjdwp:transport=dt_shmem,address=mysharedmemory
  通过共享内存的方式连接到调试服务,挂起VM并且不加载运行主函数
  -Xrunjdwp:transport=dt_socket,server=y,address=8000,
  onthrow=java.io.IOException,launch=/usr/local/bin/debugstub
  等待java.io.IOException被抛出,然后挂起VM并监听8000端口连接,在接到调试请求后以命令/usr/local/bin/debugstub dt_socket myhost:8000执行
  -Xrunjdwp:transport=dt_shmem,server=y,onuncaught=y,launch=d:\bin\debugstub.exe
  等待一个RuntimeException被抛出,然后挂起VM并监听一个可用的共享内存,在接到调试请求后以命令d:\bin\debugstub.exe dt_shmem <address>执行,<address>是可用的共享内存
分享到:
评论

相关推荐

    远程调试jpda.docx

    JPDA是Java平台调试架构,它由Java虚拟机后端和调试平台前端两部分构成,使得调试平台可以通过调试交互协议向Java虚拟机请求服务,从而对运行在虚拟机中的程序进行调试。 具体到本文中,我们的应用服务器是Tomcat ...

    JAVAECLIPSE下配置WINDCHILL远程调试WINDCHILL学习笔记.pdf

    JPDA 是 Java 平台上用于调试的标准体系结构,它由以下几个主要部分组成: 1. **JVM TI (Java Virtual Machine Tool Interface)**: 定义了 JVM 为了支持调试而必须提供的功能及相应的访问接口。这些接口是由 JVM...

    7_目标跟踪_jpda.zip

    标题中的“7_目标跟踪_jpda.zip”表明这是一个关于目标跟踪技术的压缩包,而“jpda”通常指的是Java Platform Debugger Architecture(Java平台调试架构)。这个压缩包可能包含了一系列有关如何使用JPDA进行目标跟踪...

    JPDA.rar_JPDA数据关联_jpda_jpda关联_数据关联JPDA_跟踪波门

    标题中的"JPDA.rar"可能是指Java Platform Debugger Architecture(Java平台调试架构)的压缩文件,而"JPDA数据关联_jpda_jpda关联_数据关联JPDA_跟踪波门"这部分描述了与JPDA相关的特定应用或概念,特别是关于数据...

    Java远程调试

    在软件开发领域,尤其是大型分布式系统或微服务架构中,Java远程调试是一项关键技能,它允许开发者在本地机器上调试运行在远程服务器上的Java应用程序,极大地提高了问题定位和解决效率。本文将围绕“Java远程调试”...

    Java 命令行以及Java工具总结

    它是Java平台调试架构(JPDA)的一部分,用于调试Java应用程序。 8. javah:C头文件和存根生成器。它用于编写本地方法,即调用非Java代码的方法。 9. javap:类文件的反汇编器。它可以查看Java类文件的内部结构,...

    JAVA远程调试.txt

    在开发过程中,特别是在分布式系统或微服务架构中,远程调试成为解决复杂问题的关键技术之一。本文将详细介绍如何通过JAVA进行远程调试,包括配置环境、启动调试服务器以及连接远程调试客户端等步骤。 #### 一、...

    在NetBeans中安装SonyEricsson模拟器

    - **JDI(Java Debug Interface)**:Java调试接口,JPDA的一部分,定义了调试器与Java SE虚拟机之间的交互方式。 - **JDWP(Java Debug Wire Protocol)**:定义了调试器与Java SE虚拟机之间的通信协议。 - **...

    7_目标跟踪_jpda_源码.zip

    JPDA,全称为Java Platform Debugger Architecture,是Java虚拟机(JVM)提供的一套用于调试Java应用的开放标准架构。它定义了如何创建、连接到目标虚拟机,以及如何执行调试操作的协议和API。JPDA由三部分组成: 1...

    Tomcat启动调试功能

    JPDA(Java Platform Debugger Architecture)是Java平台的调试架构。它提供了一种标准化的方式来调试Java应用程序。JPDA允许开发者使用各种调试工具来调试Java应用程序。 如何在Tomcat中使用JPDA? 要在Tomcat中...

    施懿民:生产环境下的Java排错调优

    ##### 远程调试架构 远程调试通常基于一种称为Java平台调试器架构(JPDA)的技术。JPDA提供了一套标准接口,使得调试工具能够与正在运行的Java应用程序交互。该架构主要由以下几个部分组成: - **Java虚拟机工具...

    javaEclipse

    关于JPDA的深入理解,它是一个为Java平台定义的标准调试架构,包括三个核心组件: 1. JVM TI(Java Virtual Machine Tool Interface):这是JVM为支持调试而提供的接口,由JVM自身实现。调试器通过JVM TI的本地接口...

    一个jsp的eclipse开发

    #### 二、JAVA 调试框架(JPDA)架构 JPDA 的架构可以简单地分为以下几个部分: 1. **Debugger Interface**:调试客户端使用的接口。 2. **Comm Channel**:调试客户端与 JVM 之间通信的通道。 3. **JVMDI**:JVM ...

    java笔试题的一些汇总

    - **Java调试架构(JPDA)**:JPDA是Java平台的一个标准调试架构,提供了一种机制来实现跨进程或跨机器的调试。 #### 二、Java语言基础知识 - **基本数据类型转换**:Java中基本数据类型的自动转换称为提升...

    使用 Eclipse 远程调试 Java 应用程序

    JPDA定义了一种标准架构,使得开发者可以在各种环境下调试Java应用程序,无论是在桌面系统还是嵌入式设备。 - JVMTI是JVM提供给调试工具的接口,允许调试器与JVM进行交互,获取运行时信息,设置断点等。 - JDWP是...

    一种基于JPDA的EJB组件强迁移方法.pdf

    JPDA(Java Platform Debugger Architecture)是Java平台的调试架构,可以用来捕获和恢复Java应用程序的运行状态。JPDA提供了一个通用的调试接口,可以用来实现各种调试任务,例如断点调试、变量检查、线程管理等。 ...

    Java软件开发实战 Java基础与案例开发详解 1-3 java平台的体系结构 共15页.pdf

    5. **Java Platform Debugger Architecture (JPDA)**:这是用于Java SE调试支持的基础架构。 6. **Java 2D API**:这是一套用于高级2D图形和图像的类,支持图像组合和Alpha通道图像,同时还提供了一套用于精确的...

Global site tag (gtag.js) - Google Analytics