问题标签 [jvmti]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 无论如何要通过 JVMTI 来获得 jthread tid?
JVMTI 有一个名为GetAllThreads的函数。但是我们只能得到 jthread 对象。有什么方法可以获取 jthread 对象的 tid 吗?tid 是指 gettid() 系统调用返回的内核线程 ID。
heap-memory - Android 应用程序的任何 DVM 工具接口(Java 等效的 JVMTI)?
Eclipse 调试器仍然适用于 Android 应用程序。这让我想知道这个调试器是如何实际实现的。它是为 DVM 和 JVM 分别实现的,还是有一些公共接口可以让人们获取堆和堆栈信息?我正在尝试为我找到一个可编程接口来获取 Android 应用程序的堆快照。
java - C 语言中用于 Java 的 BCI 库
我正在寻找用于 C 或 C++ 中的 Java 的 BCI(字节码检测)库,以在JVMTI 代理中使用。
到目前为止,我发现的最接近的东西只是java_crw_demo
Kelly O'Hair 几年前编写的一个演示,此后一直用于 Sun 的/Oracle 的教程中。
你知道别的吗?
一些基本原理:我正在构建一个检测工具来添加一个 getter 方法
java.lang.Object
并在Object
. 由于这个原因,我不能使用 Java 代理。此外,出于复杂性和速度的原因,我想避免生成辅助 JVM 来执行检测。
crash - jvmti agent fatal error on linux: C [libc.so.6+0x7ae68] strcpy+0x18
I have written a jvmti agent to trace method invocations. I code it with C and jvmti and jni functions. Our os is Fedora 15 and the agent is compiled into a .so
file. When I test it with a non-trivial java program, it crashes and gives the following error message:
deadlock - jvmti agent deadlock
When I run my jvmti agent with a java program, it seems that jvm encounters a deadlock. In my jvmti agent, I create a single raw monitor in Agent_OnLoad() and enter that lock at the beginning of every callback function and exit that lock at the end of every callback functions. I don't know the reason of this deadlock. Is there any other possibilities of deadlocks in jvmti agents?
thanks.
java - jvmti for jdk 6 - 参考和教程
有谁知道学习编写 jvmti 代理的好起点。
我正在为此寻找书籍或在线教程。
我查看了http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html
但它似乎没有提供一个明确的方法大纲。
任何参考将不胜感激。
java - 使用 System.load 与库集作为代理
我制作了一个简单的库来测量给定对象的大小。该库是通过 Java 类中的 JNI 访问的。它是专门为 Hotspot 设计的,因此它使用 JVMTI 并调用GetObjectSize
.
我的问题是,更好的解决方案是什么?
System.load("library")
使用或 加载库将库设置为代理并通过发出带有代理选项的 java 命令显式加载它。
到目前为止,我看到的所有类似示例都使用了代理功能:
以什么方式比仅仅加载库更有效?
谢谢!
java - JVMTI 分析:计算堆栈内存量
我正在开发一个 JVMTI 代理来监视应用程序的内存使用情况。我已经设法使用字节码检测来监视堆上的内存分配,以便在分配新对象/数组时调用本机方法。但是我真的很困惑如何确定堆栈上分配的内存量。如果您能提供任何想法、提示或链接,我将不胜感激。
java - 附加 Java VisualVM 以进行 CPU 分析会导致 JVMTI 错误 66
在使用 VisualVM 对我的应用程序进行 cpu 分析时,我遇到了错误
“Profiler Agent 错误:带有消息:重新定义失败,错误 66”。
在那之后,它将所有类文件从构建路径复制到我启动应用程序的位置。
我试图找到一些关于它的信息,错误代码的意思是(根据JVMTI-documentation):
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED (66)
对于新的类版本,直接超类不同,或者直接实现的接口集不同。
因为分析通常在我的环境中工作(Java build 1.7.0_09-b05,Fedora 17 64 位)。我已经尝试过 Visualvm-docs 中所说的“-Xshare:off”,但没有任何效果。
由于这是我遇到此问题的唯一 Java-SE 应用程序,因此它似乎与我正在使用的库有关。以下是我的类路径:
- Log4j 1.2.17
- Apache OpenJPA 2.2.1
- 公共配置 1.9
- 共享池 1.6
- PostgreSQL 9.1-901jdbc4
- imgscalr-lib-4.2
任何人都可以看到库和错误之间的相关性吗?我真的没有想法了。