使用 JNI / JVMTI - 如何确定 jfieldID 是否是静态的
如果我使用 jvmti_env->GetClassFields(objClass, &numOfFields, &fieldIds); 我仍然需要决定是调用 GetStaticField 还是 GetField。 我如何确定使用…
如何使用 JVMTI 获取 java 对象的内存地址(不是哈希码)
我是 C 和 C++ 的初学者,我不太了解如何使用 JVMTI。我想获取java对象的物理内存位置(十六进制)。是否可以?我不想得到诸如“从这个探查器等获取它…
如何运行 Jcalltracer
大家好,我在打开 jcalltracer 时遇到问题,jcalltracer 是 sourceforge 上的一个开源程序,可将 Java 程序逆向工程为序列图。当我尝试将以下内容添加…
JVMTI Agent_OnLoad 处理程序无法创建系统属性
我正在使用 JVM 工具接口。我正在尝试使用 SetSystemProperty() 调用在 Agent_OnLoad 事件中创建 SystemProperty。如果该属性存在,它会正确设置一个…
.NET 的 JVMTI 等效项
我正在寻找一些 Microsoft API,它们具有与 JVMTI 用于 Java 应用程序相同的功能来监视 .NET 应用程序。 例如,我希望能够查看每个方法调用及其所花费…
JVMTI 获取被调用类/文件的名称
我尝试阅读整个 jvmti 文档,但没有找到问题的解决方案。 我想获取在命令行中用于调用程序的类/文件的名称: java -agentpath: 在大写字母中,我想获…
如何捕获java程序中的读取和写入?
我正在尝试创建一个可以捕获java程序进行的所有读写操作的工具。另外,我想知道访问/修改哪个对象的哪些字段。 我目前查看的是:- 1) java.lang.instr…
使用 JVMTI 测量方法执行情况
使用 JVMTI 提供的 MethodEntry 和 MethodExit 事件挂钩,如何测量 Java 中执行方法的时间? 简单来说,它只是: time2 - time1 但我看到的问题是,如…
使用 JVMTI 进行死锁检测
我想知道是否可以使用 JVMTI 动态检测 Java 中的死锁。有两个事件指示使用同步语句在监视器上执行的操作: Monitor Contished Enter 当线程尝试进入另…
在运行时卸载 JVMTI 代理?
我正在使用附加 API 在运行时加载 JVMTI 代理。我想在程序完成后卸载 JVMTI 代理,而不终止加载代理的 JVM。根据 此文档 无法通过附加 API 执行此操作…
使用 JVMTI 测量 Java 的执行时间
对于我使用 JVMTI 实现的探查器想要开始测量所有 Java 方法的执行时间。 JVMTI 提供事件: MethodEntry MethodExit 所以这很容易实现,但是我遇到了这…