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

相關文章
相關標籤/搜索