首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/427087

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

JPDA 架构研究18 - JDI的Mirror机制

引入: 上篇文章从整体上来看待JDI协议,这里结合Eclipse的实现代码来讨论下JDI的Mirror机制。 分析: 镜像机制是将目标虚拟机上的所有数据、类型、域、方法、事件、状态和资源,以及调试器发向目标虚拟机的事件请求等都映射成 Mirror 对象。其思想和我们经常说的O/R Mapping一样,其主要思想就是把2个异构的系统中的事物统一起来。 Mirror接口是JDI规范中定义的主接口,它位于com.sun.jdi包中: 1 2 3 4 5 public abstract interface Mirror { public abstract StringtoString(); public abstract VirtualMachinevirtualMachine(); } 这个接口只提供了2个方法,一个是返回该镜像的字符串描述,一个是获取某镜像的实例的虚拟机。 Mirror机制定义了一个庞大的接口hierarchy, com.sun.jdi包中定义的几乎所有接口都直接或者间接继承了Mirror接口,从而把庞大的Debug过程中用到的任何元素,过程,事件都映射起来。 比如基本...

JPDA 架构研究12 - Agent利用环境指针访问VM(观察字段篇)

引入: 上文我们讲解了Agent如何利用环境指针访问VM的操作断点部分,这里我们详细讲解观察字段篇。这也是我们调试期间用的最多的操作。因为我们要不断从Watch Field看他们值的改变。 分类8:观察字段 a.SetFieldAccessWatch.启用对某字段进行访问的观察。每次访问都会创建一个FieldWatch事件。 jvmtiError SetFieldAccessWatch(jvmtiEnv*env, jclassklass, jfieldIDfield) 从入参可以看出,它要2个参数,一个是类,一个是类的字段,因此它会发起一个事件对某类的某字段进行观察。注意,只有通过java编程语言或者JNI对该字段的访问才可以被观察。 b.ClearFieldAccessWatch.清除对某字段访问的观察。 jvmtiError ClearFieldAccessWatch(jvmtiEnv*env, jclassklass, jfieldIDfield) c.SetFieldModificationWatch.启用对某字段进行修改的观察。每次修改都会创建一个FieldModificat...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册