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

JPDA 架构研究9 - Agent利用环境指针访问VM (堆管理篇)

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

标签:jdwp   jpda   

引入:

上文中我们讨论了Agent利用环境指针访问VM的堆栈操作部分,这里我们讨论堆操作部分。


分类5:堆操作

a. GetTag. 获取对象在堆上的唯一标识符(长整型)。

jvmtiError
GetTag(jvmtiEnv* env,
            jobject object,
            jlong* tag_ptr)


b.SetTag.为对象设置堆上的唯一标示符。

jvmtiError
SetTag(jvmtiEnv* env,
            jobject object,
            jlong tag)


c.ForceGarbageCollection. 强制VM执行垃圾回收。

jvmtiError
ForceGarbageCollection(jvmtiEnv* env)

该方法只有等垃圾回收做完才返回。


d.IterateOverObjectsReachableFromObject. 迭代某对象所能直接或者间接引用到的所有对象。

jvmtiError
IterateOverObjectsReachableFromObject(jvmtiEnv* env,
            jobject object,
            jvmtiObjectReferenceCallback object_reference_callback,
            void* user_data)


e.IterateOverReachableObjects.迭代堆上所有可以引用到的对象。

jvmtiError
IterateOverReachableObjects(jvmtiEnv* env,
            jvmtiHeapRootCallback heap_root_callback,
            jvmtiStackReferenceCallback stack_ref_callback,
            jvmtiObjectReferenceCallback object_ref_callback,
            void* user_data)


f.IterateOverHeap.迭代堆上的所有对象,包含可以到达的和不可到达的。

jvmtiError
IterateOverHeap(jvmtiEnv* env,
            jvmtiHeapObjectFilter object_filter,
            jvmtiHeapObjectCallback heap_object_callback,
            void* user_data)


g.IterateOverInstancesOfClass.迭代某个给定的类的堆上所有实例。包括可以和不可以到达的。

jvmtiError
IterateOverInstancesOfClass(jvmtiEnv* env,
            jclass klass,
            jvmtiHeapObjectFilter object_filter,
            jvmtiHeapObjectCallback heap_object_callback,
            void* user_data)


h.GetObjectsWithTags.获取给定的堆标记的对象列表。

jvmtiError
GetObjectsWithTags(jvmtiEnv* env,
            jint tag_count,
            const jlong* tags,
            jint* count_ptr,
            jobject** object_result_ptr,
            jlong** tag_result_ptr)



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

JPDA 架构研究9 - Agent利用环境指针访问VM (堆管理篇)

标签:jdwp   jpda   

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

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