一、datax开启远程debug

1、环境

本地:
win10,idea专业版2020.3,datax3.0
远程:
CentOS6.5,datax3.0

2、效果

3、步骤

3.1 远程开启debug
/apps/datax/bin/datax.py /apps/datax/job/job.json -d

即在后面添加-d 即可,默认端口为9999,也可以自行修改datax.py文件第35行

 REMOTE_DEBUG_CONFIG = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9999"
3.2 本地idea设置远程


二、远程debug原理

1、原理

Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的,两者之间可以通过socket进行通信;

我们知道,Java 程序都是运行在 Java 虚拟机上的,我们要调试 Java 程序,事实上就需要向 Java 虚拟机请求当前运行态的状态,并对虚拟机发出一定的指令,设置一些回调等等,那么 Java 的调试体系,就是虚拟机的一整套用于调试的工具和接口。

对于 Java 虚拟机接口熟悉的人来说,您一定还记得 Java 提供了两个接口体系,JVMPI(Java Virtual Machine Profiler Interface)和 JVMDI(Java Virtual Machine Debug Interface),而它们,以及在 Java SE 5 中准备代替它们的 JVMTI(Java Virtual Machine Tool Interface),都是 Java 平台调试体系(Java Platform Debugger Architecture,JPDA)的重要组成部分。 Java SE 自 1.2.2 版就开始推出 Java 平台调试体系结构(JPDA)工具集,而从 JDK 1.3.x 开始,Java SDK 就提供了对 Java 平台调试体系结构的直接支持。顾名思义,这个体系为开发人员提供了一整套用于调试 Java 程序的 API,是一套用于开发 Java 调试工具的接口和协议。本质上说,它是我们通向虚拟机,考察虚拟机运行态的一个通道,一套工具。理解这一点对于学习 JPDA 非常重要。

换句话说,通过JPDA 这套接口,我们就可以开发自己的调试工具。通过这些 JPDA 提供的接口和协议,调试器开发人员就能根据特定开发者的需求,扩展定制 Java 调试应用程序,开发出吸引开发人员使用的调试工具。前面我们提到的 IDE 调试工具都是基于 JPDA 体系开发的,区别仅仅在于它们可能提供了不同的图形界面、具有一些不同的自定义功能。另外,我们要注意的是,JPDA 是一套标准,任何的 JDK 实现都必须完成这个标准,因此,通过 JPDA 开发出来的调试工具先天具有跨平台、不依赖虚拟机实现、JDK 版本无关等移植优点,因此大部分的调试工具都是基于这个体系的。

  1. JPDA模块层次
  2. JPDA层次比较

更加深入的介绍文档可以参见 https://developer.ibm.com/zh/articles/j-lo-jpda1/


2、idea 和eclipse的远程debug原理

客户端(idea 、eclipse 等)之所以可以进行调试,是由于客户端 和 服务端(程序端)进行了 socket 通信,通信过程如下:

1、先建立起了 socket 连接

2、将断点位置创建了断点事件通过 JDI 接口传给了 服务端(程序端)的 VM,VM 调用 suspend 将 VM 挂起

3、VM 挂起之后将客户端需要获取的 VM 信息返回给客户端,返回之后 VM resume 恢复其运行状态

4、客户端获取到 VM 返回的信息之后可以通过不同的方式展示给客户;

datax(24):远程调试datax相关推荐

  1. zend studio 远程调试 php

    ZendStudio配置SFTP:结合Zend Debugger进行php代码的远程调试 2012-12-24 09:14 1780人阅读 评论(0) 收藏 举报  分类: PHP(35)  一.配置 ...

  2. GDB 远程调试试验(gdbserver)【ZT】

    一.基本原理 调试器是运行在host pc机的应用程序, 被调试的程序是运行在target上. 插桩(stub):在目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试. 调试器与被调程 ...

  3. 远程调试运行在Resin上面的Web应用程序

    为什么80%的码农都做不了架构师?>>>    有时候,我们不得不放弃在本地调试我们的程序,把我们的程序先布署到服务器,然后把调试信息都记在日志中,用眼睛瞅日志来调试程序. 不是用这 ...

  4. java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计小区物业管理系统录像展示.mp4源程序+mysql+系统+lw文档+远程调试 ...

  5. java计算机毕业设计小区失物招领网站源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计小区失物招领网站源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计小区失物招领网站源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S ...

  6. java计算机毕业设计学生宿舍信息管理源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计学生宿舍信息管理源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计学生宿舍信息管理源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S ...

  7. java计算机毕业设计高校四六级报名管理系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计高校四六级报名管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计高校四六级报名管理系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目 ...

  8. java计算机毕业设计物流公司停车位管理源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计物流公司停车位管理源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计物流公司停车位管理源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B ...

  9. java计算机毕业设计个人交友网站源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计个人交友网站源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计个人交友网站源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 开 ...

  10. java计算机毕业设计列车票务信息管理系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计列车票务信息管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计列车票务信息管理系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构 ...

最新文章

  1. 我们真的需要深度图神经网络吗?
  2. 驱动编程中的头文件与内核源码的关系
  3. 园友们注意:淘宝网上QQ会员 4钻 3元 等都为骗子行为
  4. SCons命令 之 从入门到精通
  5. 【算法】广度遍历算法的应用 求出距离顶点v0的最短路径长度为最长的一个顶点,图结构的bfs生成树及其双亲表示形式
  6. 古月居ros课件_【古月居】ROS2探索总结系列
  7. IMPORTANT: BizTalk Server 2004 fixes for Windows XP SP2 and .NET FW 1.1 SP1
  8. 11. 文件上传漏洞
  9. ORA-04031:unable to allocate 4120 bytes of shared memory ‘obj stat mem’故障解决
  10. winform开发框架介绍
  11. 爱折腾星人必备工具,系统重启还原精灵-影子卫士
  12. android删除字符,【已解决】Android中EditText中退格键BackSpace键(删除键)不起效果:无法删除字符...
  13. java 苹果cms 萌果_MacCMS8.x(苹果CMS8.x)整合Ckplayer6.4
  14. 针对谷粒商城P46 验证码图片加载出来错误503
  15. springboot 多模块 Found multiple @SpringBootConfiguration annotated classes
  16. vue移动端监听切屏次数
  17. 孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。第一天开始吃的时候一共有多少个
  18. 等腰字母三角形c语言,如何用c语言输出等腰三角形 c语言输出三角形方法
  19. Qt解析XML相关(QDom方式)
  20. 欧拉定理的内容证明及欧拉函数的推导

热门文章

  1. 百度网盘文件真实地址解析
  2. Django order by 高级用法
  3. UEFI规范实现EDKII项目学习笔记绪论[0]
  4. java实现界面化,java实现图形化界面
  5. 可视化学习:可视化布局方法简介及优缺点
  6. Matplotlib可视化数据分析图表上(解决中文乱码、解决负号不显示问题、round函数、为图表中各个数据点添加文本标签、坐标轴范围、添加文本标签、设置标题和图例、添加注释)
  7. JavaScript里函数中的this
  8. 51单片机系列--led点阵屏显示汉字
  9. 树的遍历 ALDS1_7_C:Tree Walk
  10. 高维球体的体积是多少