引入:
上篇我们讲解了Agent如何利用环境指针访问VM的管理堆的操作。这里主要讲解如何管理局部变量。
分类6:局部变量管理
a.GetLocalObject. 获取局部对象
jvmtiError
GetLocalObject(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jobject* value_ptr)
b.GetLocalInt.获取局部整型值
jvmtiError
GetLocalInt(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jint* value_ptr)
它可以被用来获取整型,字符,字节,布尔型。
c.GetLocalLong.获取局部长整型值
jvmtiError
GetLocalLong(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jlong* value_ptr)
d.GetLocalFloat.获取局部的浮点值。
jvmtiError
GetLocalFloat(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jfloat* value_ptr)
e.GetLocalDouble.获取局部的双精度浮点值。
jvmtiError
GetLocalDouble(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jdouble* value_ptr)
f.SetLocalObject.设置局部对象。
jvmtiError
SetLocalObject(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jobject value)
g.SetLocalInt.设置局部整型变量。
jvmtiError
SetLocalInt(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jint value)
同样适用于整型,字符,字节,布尔型。
h.SetLocalLong.设置局部长整型变量。
jvmtiError
SetLocalLong(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jlong value)
i.SetLocalFloat.设置局部浮点变量。
jvmtiError
SetLocalFloat(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jfloat value)
j.SetLocalDouble.设置局部双精度浮点变量。
jvmtiError
SetLocalDouble(jvmtiEnv* env,
jthread thread,
jint depth,
jint slot,
jdouble value)
本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/1587764,如需转载请自行联系原作者