JDWP_Event_Composite

2024-03-19 22:36
文章标签 composite event jdwp

本文主要是介绍JDWP_Event_Composite,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java(tm) Debug Wire Protocol

您提供的文本描述了虚拟机(VM)环境中事件处理的结构和规则,特别是在Java Debug Wire Protocol(JDWP)的上下文中。以下是关键点的概述,以及每种事件类型及其在复合事件中的分组的重要性:

1. **事件命令集(64)和复合命令(100)**:这些是JDWP中用于管理和报告VM内发生事件的命令集。复合命令允许高效地分组和报告同时发生的多个事件,即使只有一个事件,也仍然作为复合事件的一部分进行报告,以保持一致性。

2. **复合事件**:用于传递在同一时间点在VM内发生的多个事件。为了统一性,即使只有一个事件,也作为复合事件的一部分进行报告。

3. **事件分组限制**:可以组合在复合事件中的事件类型受到限制,确保它们是相关的并且彼此相关。例如:
   - **线程启动事件(Thread Start Event)** 只能与同一线程的其他线程启动事件组合。
   - **线程死亡事件(Thread Death Event)** 只能与同一线程的其他线程死亡事件组合。
   - **类准备事件(Class Prepare Event)** 只能与同一类的其他类准备事件组合。
   - **类卸载事件(Class Unload Event)** 只能与同一类的其他类卸载事件组合。
   - **访问监视点事件(Access Watchpoint Event)** 只能与同一字段访问的其他访问监视点事件组合。
   - **修改监视点事件(Modification Watchpoint Event)** 只能与同一字段修改的其他修改监视点事件组合。
   - **监视器争用进入事件(Monitor Contended Enter Event)** 只能与同一监视器对象的其他监视器争用进入事件组合。
   - **监视器争用进入事件(Monitor Contended Entered Event)** 只能与同一监视器对象的其他监视器争用进入事件组合。
   - **监视器等待事件(Monitor Wait Event)** 只能与同一监视器对象的其他监视器等待事件组合。
   - **监视器等待事件(Monitor Waited Event)** 只能与同一监视器对象的其他监视器等待事件组合。
   - **异常事件(ExceptionEvent)** 只能与同一异常发生的其他异常事件组合。
   - **断点事件(Breakpoint Event)、步进事件(Step Event)、方法进入事件(Method Entry Event)、方法退出事件(Method Exit Event)** 只能与同一位置和同一线程的其他事件组合。

4. **自动生成的事件**:**VM启动事件(VM Start Event)** 和 **VM死亡事件(VM Death Event)** 是自动生成的事件。这意味着它们不需要使用事件请求集(EventRequest.Set)命令来请求。VM启动事件表示VM初始化的完成,而VM死亡事件表示VM的终止。如果在自动生成事件发生时连接了调试器,它将从目标VM发送。自动生成的事件也可以使用事件请求集命令来请求,因此在事件发生时,目标VM将发送多个相同类型的事件。自动生成的事件发送时,事件数据中的requestID字段设置为0。事件数据中的suspendPolicy字段的值取决于事件。例如,在Sun实现中,suspendPolicy是在启动时作为JDWP代理的一个选项指定的。自动生成的VM死亡事件将suspendPolicy设置为NONE。

这些规则确保了在调试过程中,事件的报告既有序又高效,帮助开发者更好地理解和控制程序的执行流程。

这篇关于JDWP_Event_Composite的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827450

相关文章

fetch-event-source 如何通过script全局引入

fetchEventSource源码中导出了两种类型的包cjs和esm。但是有个需求如何在原生是js中通过script标签引呢?需要加上type=module。今天介绍另一种方法 下载源码文件: https://github.com/Azure/fetch-event-source.git 安装: npm install --save-dev webpack webpack-cli ts

myEclipse失去焦点时报错Unhandled event loop exception的解决方案

一句话:百度杀毒惹的祸。。。。果断卸载后问题解决。

WebAPI(二)、DOM事件监听、事件对象event、事件流、事件委托、页面加载与滚动事件、页面尺寸事件

文章目录 一、 DOM事件1. 事件监听2. 事件类型(1)、鼠标事件(2)、焦点事件(3)、键盘事件(4)、文本事件 3. 事件对象(1)、获取事件对象(2)、事件对象常用属性 4. 环境对象 this5. 回调函数 二、 DOM事件进阶1. 事件流(1)、 捕获阶段(2)、 冒泡阶段(3)、 阻止冒泡(4) 、阻止元素默认行为(5) 、解绑事件 2. 事件委托3. 其他事件(1)、页面加

鸿蒙轻内核M核源码分析系列十二 事件Event

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 轻内核M核源码分析系列一 数据结构-双向循环链表 轻内核M核源码分析系列二 数据结构-任务就绪队列 鸿蒙轻内核M核源码分析系列三 数据结构-任务排序链表 轻内核M核源码分析系列四 中断Hwi 轻内核M核源码分析系列五 时间管理 轻内核M核源码分析系列六 任务及任务调度(1)任务栈 轻内核M核源码分析系列六 任务及任务调度

Event Time源码分析

《2021年最新版大数据面试题全面开启更新》 flink 中Processing Time也就是处理时间在watermark定时生成、ProcessFunction中定时器与时间类型的窗口中都有使用,但是其内部是如何实现注册定时器、如何调用、如何容错保证在任务挂掉在下次重启仍然能够触发任务执行,都是我们今天的主题。首先需要了解一下在flink内部时间系统是由哪些类来共同完成这件事,下面画

获取一个event_base

原文链接:http://www.wangafu.net/~nickm/libevent-book/Ref2_eventbase.html 创建一个event_base 在你使用任何有意思的Libevent函数之前,你需要分配一个或多个event_base结构.每一个event_base结构含有一组events,并且可以告知你哪一些events是就绪的. 如果一个event_base是以加锁模

论文《Autoencoders for improving quality of process event logs》翻译

论文《Autoencoders for improving quality of process event logs》翻译 《Autoencoders for improving quality of process event logs》翻译

IE中的事件对象window.event

和dom中的事件对象做对比: 几个重要的方法和属性分别是: (1)事件类型:同为type属性; (2)事件作用目标:ie为srcElement属性; (3)阻止事件冒泡:ie为canceBubble属性;(设置为ture为阻止冒泡,false为允许); (4)阻止事件默认行为:ie为retureValue属性;(设置为ture为阻止,false是允许); 同样通过判断浏览器的能力来选择

DOM的事件对象event

注:本例讨论的全都是事件的对象,不是事件不讨论 什么是事件对象?在触发DOM中的事件时都会产生一个对象(ie中的先不讨论) DOM中的事件对象: 重要属性和方法: (1)type属性,用于返回事件的类型 例: (2)target属性,用于返回事件作用的目标 (3)stopPropagation(),用于阻止事件冒泡:例: <div id="div"> <input type

Qt event-buttons()

event->buttons() & Qt::LeftButton 和 event->buttons() == Qt::LeftButton 在这里的效果一致,但这两个语句完全不等价(效果一致仅仅是一个特例)。event->buttons() 的返回值是 Qt::MouseButtons,这是一个 flag 类型,可以使用 | 进行按位或的操作。也就是说,event->buttons() 可能返回