jdwp-(ide-proxy)交互数据流1

(1)
从IDE接收到的packet->ID=2/Virtual Machine(1)/IDSizes(7)/0/

proxy->ide packet:ID=2/(0)/(0)/0/0000000800000004000000040000000400000004

*fieldIDSize =*00000008

methodIDSize= 00000004

objectIDSize= 00000004

referenceTypeIDSize= 00000004

frameIDSize= 00000004

IDSizes Command (7)

Returns the sizes of variably-sized data types in the target VM.The returned values indicate the number of bytes used by the identifiers in command and reply packets.

Out Data

(None)

Reply Data

int fieldIDSize fieldID size in bytes
int methodIDSize methodID size in bytes
int objectIDSize objectID size in bytes
int referenceTypeIDSize referenceTypeID size in bytes
int frameIDSize frameID size in bytes

Error Data

|-----------------------------------------------------------------------------------------------------------------|-------------------------------------|
| VM_DEAD | The virtual machine is not running. |


(2)

EventRequest Command Set (15)
Set Command (1)

Set an event request. When the event described by this request occurs, an event is sent from the target VM. If an event occurs that has not been requested then it is not sent from the target VM. The two exceptions to this are the VM Start Event and the VM Death Event which are automatically generated events - see Composite Command for further details.

事件请求命令集 (15)

设置命令 (1)

设置事件请求。 当此请求描述的事件发生时,将从目标 VM 发送一个事件。 如果发生未请求的事件,则不会从目标 VM 发送该事件。 两个例外是 VM 启动事件和 VM 死亡事件,它们是自动生成的事件 - 有关更多详细信息,请参阅复合命令。

从IDE接收到的packet->ID=4/EventRequest(15)/Set(1)/0/080000000000

proxy->ide packet:ID=4/(0)/(0)/0/00000000

从IDE接收到的packet->ID=6/EventRequest(15)/Set(1)/0/090000000000

proxy->ide packet:ID=6/(0)/(0)/0/00000001


VirtualMachine Command Set (1)

Returns the JDWP version implemented by the target VM. The version string format is implementation dependent.

从IDE接收到的packet->ID=8/Virtual Machine(1)/Version(1)/0/

proxy->ide packet:ID=8/(0)/(0)/0/0000000b56657273696f6e20312e30000000010000000400000003312e30000000174a6176612043617264203320506c6174666f726d205249

Version Command (1)

Returns the JDWP version implemented by the target VM. The version string format is implementation dependent.

Out Data

(None)

Reply Data

string description Text information on the VM version
int jdwpMajor Major JDWP Version number
int jdwpMinor Minor JDWP Version number
string vmVersion Target VM JRE version, as in the java.version property
string vmName Target VM name, as in the java.vm.name property

从IDE接收到的packet->ID=10/Virtual Machine(1)/Capabilities(12)/0/

proxy->ide packet:ID=10/(0)/(0)/0/00000000000000

Capabilities Command (12)

Retrieve this VM's capabilities. The capabilities are returned as booleans, each indicating the presence or absence of a capability. The commands associated with each capability will return the NOT_IMPLEMENTED error if the cabability is not available.

Out Data

(None)

Reply Data

boolean canWatchFieldModification Can the VM watch field modification, and therefore can it send the Modification Watchpoint Event?
boolean canWatchFieldAccess Can the VM watch field access, and therefore can it send the Access Watchpoint Event?
boolean canGetBytecodes Can the VM get the bytecodes of a given method?
boolean canGetSyntheticAttribute Can the VM determine whether a field or method is synthetic? (that is, can the VM determine if the method or the field was invented by the compiler?)
boolean canGetOwnedMonitorInfo Can the VM get the owned monitors infornation for a thread?
boolean canGetCurrentContendedMonitor Can the VM get the current contended monitor of a thread?
boolean canGetMonitorInfo Can the VM get the monitor information for a given object?

从IDE接收到的packet->ID=12/Virtual Machine(1)/AllClasses(3)/0/

proxy->ide packet:ID=12/(0)/(0)/0/000000070100ffffff0000000d4c53797374656d436c6173733b000000000301000001000000025b42000000000301000002000000025b5a000000000301000003000000025b53000000000301000004000000025b490000000001001d8001000000344c636f6d2f6f7261636c652f6a63636c61737369632f73616d706c65732f68656c6c6f776f726c642f48656c6c6f576f726c643b0000000003001d0002000000355b4c636f6d2f6f7261636c652f6a63636c61737369632f73616d706c65732f68656c6c6f776f726c642f48656c6c6f576f726c643b00000000

AllClasses Command (3)

Returns reference types for all classes currently loaded by the target VM.

Out Data

(None)

Reply Data

int classes Number of reference types that follow.
Repeated classes times:
byte refTypeTag Kind of following reference type.
referenceTypeID typeID Loaded reference type
string signature The JNI signature of the loaded reference type
int status The current class status.

从IDE接收到的packet->ID=14/Virtual Machine(1)/TopLevelThreadGroups(5)/0/

proxy->ide packet:ID=14/(0)/(0)/0/00000001ffffffe0

TopLevelThreadGroups Command (5)

Returns all thread groups that do not have a parent. This command may be used as the first step in building a tree (or trees) of the existing thread groups.

Out Data

(None)

Reply Data

int groups Number of thread groups that follow.
Repeated groups times:
threadGroupID group A top level thread group

从IDE接收到的packet->ID=18/EventRequest(15)/Set(1)/0/070000000000

proxy->ide packet:ID=18/(0)/(0)/0/00000003


从IDE接收到的packet->ID=20/EventRequest(15)/Set(1)/0/080100000001050000002273756e2e696e737472756d656e742e496e737472756d656e746174696f6e496d706c

proxy->ide packet:ID=20/(0)/(0)/0/00000004


从IDE接收到的packet->ID=22/EventRequest(15)/Set(1)/0/080100000001050000002273756e2e696e737472756d656e742e496e737472756d656e746174696f6e496d706c

proxy->ide packet:ID=22/(0)/(0)/0/00000005


从IDE接收到的packet->ID=24/EventRequest(15)/Set(1)/0/0801000000010500000032636f6d2e6f7261636c652e6a63636c61737369632e73616d706c65732e68656c6c6f776f726c642e4d794d61696e54657374

proxy->ide packet:ID=24/(0)/(0)/0/00000006


从IDE接收到的packet->ID=26/EventRequest(15)/Set(1)/0/0801000000010500000032636f6d2e6f7261636c652e6a63636c61737369632e73616d706c65732e68656c6c6f776f726c642e48656c6c6f576f726c64

proxy->ide packet:ID=26/(0)/(0)/0/00000007


从IDE接收到的packet->ID=28/ReferenceType(2)/Status(9)/0/001d8001

proxy->ide packet:ID=28/(0)/(0)/0/00000002


从IDE接收到的packet->ID=30/ReferenceType(2)/Methods(5)/0/001d8001

proxy->ide packet:ID=30/(0)/(0)/0/000000031d800100000000063c696e69743e00000003282956000000041d80010100000007696e7374616c6c00000007285b4253422956000000091d8001020000000770726f636573730000001c284c6a617661636172642f6672616d65776f726b2f415044553b295600000001


从IDE接收到的packet->ID=32/Virtual Machine(1)/CapabilitiesNew(17)/0/

proxy->ide packet:ID=32/(0)/(0)/0/0000000000000000000000000000000000000000000000000000000000000000


从IDE接收到的packet->ID=34/Method(6)/LineTable(1)/0/001d80011d800100

proxy->ide packet:ID=34/(0)/(0)/0/0000000000000000000000000000001100000004000000000000000000000023000000000000000400000024000000000000000c00000025000000000000001000000026


从IDE接收到的packet->ID=36/Method(6)/LineTable(1)/0/001d80011d800101

proxy->ide packet:ID=36/(0)/(0)/0/0000000000000000000000000000000900000002000000000000000000000033000000000000000800000034


从IDE接收到的packet->ID=38/Method(6)/LineTable(1)/0/001d80011d800102

proxy->ide packet:ID=38/(0)/(0)/0/000000000000000000000000000000530000000e00000000000000000000004100000000000000050000004400000000000000110000004600000000000000120000004900000000000000170000004a000000000000001a0000004c000000000000001d0000004d00000000000000280000004e000000000000002e0000004f000000000000003600000052000000000000003b00000053000000000000004300000056000000000000004900000058000000000000005200000059


从IDE接收到的packet->ID=40/ReferenceType(2)/SourceFile(7)/0/001d8001

proxy->ide packet:ID=40/(0)/(0)/0/0000000f48656c6c6f576f726c642e6a617661


从IDE接收到的packet->ID=42/EventRequest(15)/Set(1)/0/0202000000010701001d80011d8001000000000000000004

----------proxy->VM begin---------

packetData = 4606011d00000007

----------proxy->VM end---------

==========VM->proxy begin==========

从VM读取到的数据 data = c60400000000

==========VM->proxy end==========

proxy->ide packet:ID=42/(0)/(0)/0/00000008


从IDE接收到的packet->ID=44/EventRequest(15)/Set(1)/0/0801000000010500000032636f6d2e6f7261636c652e6a63636c61737369632e73616d706c65732e68656c6c6f776f726c642e48656c6c6f576f726c64

proxy->ide packet:ID=44/(0)/(0)/0/00000009


从IDE接收到的packet->ID=46/EventRequest(15)/Set(1)/0/0202000000010701001d80011d8001020000000000000005

----------proxy->VM begin---------

packetData = 4606011d00000026

----------proxy->VM end---------

==========VM->proxy begin==========

从VM读取到的数据 data = c60400000000

==========VM->proxy end==========

proxy->ide packet:ID=46/(0)/(0)/0/0000000a


从IDE接收到的packet->ID=48/Virtual Machine(1)/Resume(9)/0/

----------proxy->VM begin---------

packetData = 4103010001

----------proxy->VM end---------

==========VM->proxy begin==========

从VM读取到的数据 data = c103000001

==========VM->proxy end==========


相关推荐
Ulyanov18 小时前
深入QML-Python通信 构建响应式交互界面的桥梁设计:QML+PySide6现代开发入门(五)
开发语言·python·算法·交互·qml·系统仿真
郝学胜-神的一滴19 小时前
Qt 高级开发 019:从零定制登录窗口按钮、Logo 样式与交互悬浮效果
开发语言·c++·qt·程序人生·交互·用户界面
LONGZETECH1 天前
Unity 3D工业级教育软件实战:200+无人机装调任务的碰撞检测与交互落地
3d·unity·架构·游戏引擎·无人机·交互·cocos2d
不羁的木木1 天前
Form Kit(卡片开发服务)学习笔记04-交互事件与跳转处理
笔记·学习·交互·harmonyos
蓝速科技2 天前
蓝速科技 3D 全息数字人舱实景效能与选型指南
大数据·人工智能·科技·3d·交互
cy_cy0022 天前
折幕影院怎样实现虚实一体?
大数据·科技·人机交互·交互·软件构建
之歆2 天前
Day21_电商详情页核心技术实战:从LESS预处理到复杂交互实现
开发语言·前端·javascript·css·交互·less
ZC跨境爬虫2 天前
跟着 MDN 学CSS day_31:(精通链接样式,从伪类到导航菜单)
前端·javascript·css·ui·交互
都在酒里2 天前
Linux字符设备驱动开发(九):内核定时器——实现LED周期性闪烁与轮询驱动原理
linux·运维·驱动开发·交互
都在酒里2 天前
Linux字符设备驱动开发(十):综合实例——I2C传感器 + LED智能控制与进阶指南
linux·运维·服务器·驱动开发·交互