我是 C 和 C++ 的初学者,我不太了解如何使用 JVMTI。我想获取 java 对象的物理内存位置(十六进制)。可能吗?我不想得到像“从这个分析器等获取它”这样的答案......到目前为止,我在 linux 终端中使用这个命令:
java -showversion -agentpath:../CPrg/DLL/bin/Debug/libDLL.so SimpleMemAlloc
libDLL.so 是我使用 c 创建的库,我在其中使用我的 java 应用程序运行它。它确实有效,它与我的代码一起运行,但我不知道如何获取我想要的数据。
例如,我正在使用这个简单的代码:
public class SimpleMemAlloc{
Object [] oarray = new Object[10000];
public static void main(String args []){
Object [] o= new Object[100];
for (int i= 0; i<100; i++){
o[i] = new Integer [10000];
}
}
}
我想获取我创建的每个新整数数组的内存位置(0x ...)...如果我使用 jvmti 获得一个不错的示例代码,我将非常高兴