码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-12-09 12:27:58      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:jdwp   jpda   jvmti   

引入:

上文我们讲解了Agent如何利用环境指针访问VM的操作断点部分,这里我们详细讲解观察字段篇。这也是我们调试期间用的最多的操作。因为我们要不断从Watch Field看他们值的改变。


分类8:观察字段

a.SetFieldAccessWatch.启用对某字段进行访问的观察。每次访问都会创建一个FieldWatch事件。

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

从入参可以看出,它要2个参数,一个是类,一个是类的字段,因此它会发起一个事件对某类的某字段进行观察。注意,只有通过java编程语言或者JNI对该字段的访问才可以被观察。


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.清除对某字段修改的观察。

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



本文出自 “平行线的凝聚” 博客,请务必保留此出处http://supercharles888.blog.51cto.com/609344/1587779

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

标签:jdwp   jpda   jvmti   

原文地址:http://supercharles888.blog.51cto.com/609344/1587779

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!