0

我正在使用 JVMTI 接口的 API 为 JVM 编写一个自定义调试器,我需要获取声明该方法的类名,我使用获取方法的方法 ID,error = (*jvmti)->GetMethodName(jvmti,frames[i].method,&methodName,NULL,NULL);我正在尝试使用获取类名error = (*jvmti)->GetMethodDeclaringClass(jvmti,frames[i].method,&declaring_class_ptr);

这将返回 declaring_class_ptr 中的 jclass 引用,我的问题是如何将其转换为给出类名的字符串?

4

1 回答 1

1

要获取类名,您需要使用 GetClassSignature,例如:

char* name;
jvmti->GetClassSignature(class, &name, NULL);
trace(jvmti, "Class prepared: %s", fix_class_name(name));
jvmti->Deallocate((unsigned char*)name);
于 2017-02-14T06:19:33.710 回答