JPDA 架构研究15 - Agent利用环境指针访问VM(字段访问篇)

引入:jvm

上文中咱们已经探讨了Agent如何利用环境指针访问VM(对象级的操做),如今咱们 讨论让Agent利用环境指针访问类的字段。ide


分类10:字段访问指针

a.GetFieldName.获取某类的某字段名字对象

jvmtiError
GetFieldName(jvmtiEnv* env,
            jclass klass,
            jfieldID field,
            char** name_ptr,
            char** signature_ptr,
            char** generic_ptr)


b.GetFieldDeclaringClass. 获取声明该字段的类编译器

jvmtiError
GetFieldDeclaringClass(jvmtiEnv* env,
            jclass klass,
            jfieldID field,
            jclass* declaring_class_ptr)


c.GetFieldModifiers. 获取某类的某字段的访问修饰符it

jvmtiError
GetFieldModifiers(jvmtiEnv* env,
            jclass klass,
            jfieldID field,
            jint* modifiers_ptr)


d.IsFieldSynthetic. 判断某类的某字段是不是虚构字段编译

jvmtiError
IsFieldSynthetic(jvmtiEnv* env,
            jclass klass,
            jfieldID field,
            jboolean* is_synthetic_ptr)

所谓的虚构字段就是由编译器产生的而不是直接定义在源代码中的字段。class

相关文章
相关标签/搜索