问题标签 [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.

0 投票
1 回答
446 浏览

java - 无论如何要通过 JVMTI 来获得 jthread tid?

JVMTI 有一个名为GetAllThreads的函数。但是我们只能得到 jthread 对象。有什么方法可以获取 jthread 对象的 tid 吗?tid 是指 gettid() 系统调用返回的内核线程 ID。

0 投票
1 回答
844 浏览

heap-memory - Android 应用程序的任何 DVM 工具接口(Java 等效的 JVMTI)?

Eclipse 调试器仍然适用于 Android 应用程序。这让我想知道这个调试器是如何实际实现的。它是为 DVM 和 JVM 分别实现的,还是有一些公共接口可以让人们获取堆和堆栈信息?我正在尝试为我找到一个可编程接口来获取 Android 应用程序的堆快照。

0 投票
2 回答
856 浏览

java - C 语言中用于 Java 的 BCI 库

我正在寻找用于 C 或 C++ 中的 Java 的 BCI(字节码检测)库,以在JVMTI 代理中使用。

最好的情况是纯 C语言中的ASMBCEL 。

到目前为止,我发现的最接近的东西只是java_crw_demoKelly O'Hair 几年前编写的一个演示,此后一直用于 Sun 的/Oracle 的教程中。

你知道别的吗?

一些基本原理:我正在构建一个检测工具来添加一个 getter 方法java.lang.Object并在Object. 由于这个原因,我不能使用 Java 代理。此外,出于复杂性和速度的原因,我想避免生成辅助 JVM 来执行检测。

0 投票
1 回答
2058 浏览

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:

0 投票
2 回答
308 浏览

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.

0 投票
1 回答
429 浏览

java - jvmti for jdk 6 - 参考和教程

有谁知道学习编写 jvmti 代理的好起点。

我正在为此寻找书籍或在线教程。

我查看了http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html

但它似乎没有提供一个明确的方法大纲。

任何参考将不胜感激。

0 投票
1 回答
118 浏览

java - 使用 System.load 与库集作为代理

我制作了一个简单的库来测量给定对象的大小。该库是通过 Java 类中的 JNI 访问的。它是专门为 Hotspot 设计的,因此它使用 JVMTI 并调用GetObjectSize.

我的问题是,更好的解决方案是什么?

  1. System.load("library")使用或 加载库

  2. 将库设置为代理并通过发出带有代理选项的 java 命令显式加载它。

到目前为止,我看到的所有类似示例都使用了代理功能:

以什么方式比仅仅加载库更有效?

谢谢!

0 投票
1 回答
190 浏览

java - Java 的 DebuggerStepThrough 等效项

.NET 有几个方便的注释,它们指示调试器单步执行/跳过某些方法。我想知道是否有适用于 Java 平台的等价物。

例如:

会导致调试器在单步执行时不会停止。foo

我试过的

  • 在类文件中使用 SYNTHETIC 标志。这会导致 javac 禁止用户代码调用此类方法。
  • 自定义属性。没有用于检索注释的JDI API 。在这个论坛上也提到过。

PS。我正在实现一个调试器并控制发出的字节码

0 投票
1 回答
248 浏览

java - JVMTI 分析:计算堆栈内存量

我正在开发一个 JVMTI 代理来监视应用程序的内存使用情况。我已经设法使用字节码检测来监视堆上的内存分配,以便在分配新对象/数组时调用本机方法。但是我真的很困惑如何确定堆栈上分配的内存量。如果您能提供任何想法、提示或链接,我将不胜感激。

0 投票
2 回答
4130 浏览

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

任何人都可以看到库和错误之间的相关性吗?我真的没有想法了。