JNI 中的register native的问题

raintung 2013-11-07
一直都没看到 jvmtiEventCallbacks 中的NativeMethodBind 是什么时候初始化的
这个方法体内容在哪,搜索了一遍源码没看到定义

请R大指点一下
RednaxelaFX 2013-11-07
什么时候初始化是什么意思?这个callback是由外部JVMTI agent自己注册的,没人注册就是NULL啊。

至于使用是在这:
JvmtiExport::post_native_method_bind(methodOop method, address* function_ptr)


是问那个NULL是哪里赋值的么?
raintung 2013-11-07
外部JVMTI agent自己注册的,是什么方式怎样注册的?例子有么?
主要在看JNI 里面的把class 中的native方法的地址替换成链接库函数的地址,这部分代码应该是NativeMethodBind 方法实现的。
RednaxelaFX 2013-11-07
raintung 写道
外部JVMTI agent自己注册的,是什么方式怎样注册的?例子有么?
主要在看JNI 里面的把class 中的native方法的地址替换成链接库函数的地址,这部分代码应该是NativeMethodBind 方法实现的。

NativeMethodBind只是个callback啊。您要找的功能不在这里。记得之前我在HLLVM群组的回帖里写过native函数是如何bind上来的。
http://hllvm.group.iteye.com/group/topic/37604
raintung 2013-11-09
不好意思,没有仔细看代码, 主要是register native的时候已经指定了函数地址,还误认为是在JVMTI里做的,谢谢R大。
Global site tag (gtag.js) - Google Analytics