引入: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