JPDA 架構研究12 - Agent利用環境指針訪問VM(觀察字段篇)

引入:java

上文咱們講解了Agent如何利用環境指針訪問VM的操做斷點部分,這裏咱們詳細講解觀察字段篇。這也是咱們調試期間用的最多的操做。由於咱們要不斷從Watch Field看他們值的改變。編程


分類8:觀察字段jvm

a.SetFieldAccessWatch.啓用對某字段進行訪問的觀察。每次訪問都會建立一個FieldWatch事件。編程語言

jvmtiError
SetFieldAccessWatch(jvmtiEnv* env,
            jclass klass,
            jfieldID field)

從入參能夠看出,它要2個參數,一個是類,一個是類的字段,所以它會發起一個事件對某類的某字段進行觀察。注意,只有經過java編程語言或者JNI對該字段的訪問才能夠被觀察。ide


b.ClearFieldAccessWatch.清除對某字段訪問的觀察。指針

jvmtiError
ClearFieldAccessWatch(jvmtiEnv* env,
            jclass klass,
            jfieldID field)


c.SetFieldModificationWatch.啓用對某字段進行修改的觀察。每次修改都會建立一個FieldModification事件。調試

jvmtiError
SetFieldModificationWatch(jvmtiEnv* env,
            jclass klass,
            jfieldID field)

注意,只有經過java編程語言或者JNI對該字段的修改才能夠被觀察。事件


d.ClearFieldModificationWatch.清除對某字段修改的觀察。it

jvmtiError
ClearFieldModificationWatch(jvmtiEnv* env,
            jclass klass,
            jfieldID field)
相關文章
相關標籤/搜索