java - 当执行关于“java -agentpath :c:/tool. dll javaClass”的Agent_UnLoad()方法时

标签 java dll jvm jvmti

I just start learning JVM TI. About the java command: java -agentpath:../tool.dll javaClass, I know that there is a Agent_OnLoad() method in dll and maybe it set some event callback method. And I know the jvm execute Agent_OnLoad() first and then execute javaClass.And the Agent_OnUnLoad() is also called by jvm.

<小时/>

那么问题来了,jvm如何知道何时调用Agent_OnUnLoad()方法。首先,我认为执行javaClass后jvm会调用Agent_OnUnload(),但后来我放弃了这个想法,因为此时,也许dll正在做某事,例如将数据写入磁盘。

<小时/>

So how jvm know it is the right time to call Agent_OnUnLoad() method?

最佳答案

没有定义用于卸载代理库的标准机制。 Agent_OnUnload 仅在 VM 终止之前、所有关闭 Hook 完成时调用。

关于java - 当执行关于“java -agentpath :c:/tool. dll javaClass”的Agent_UnLoad()方法时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40086966/

相关文章:

c++ - 从托管 C++ 引用非托管 C++ DLL

java - 如何降低JAVA应用的CPU使用率?

java - 什么是 JVM 可以创建的线程的阈值限制数

C# 加载 C++ DLL - 退出时出现问题

java - 将已删除的数据与其他数据一起包含到审核查询中

java - 设置 crawler4j 的指南

java - 应该使用哪个变量声明?

delphi - DLL 断点没有被 "remote debug symbols"选项命中,为什么以及这些有任何安全风险吗?

java - LocalVariableTable 中的 'start' 和 'length' 属性是什么意思

java - 使用 FQL android 获取所有 Facebook 相册 ID