我实现了一个 JNI 方法来处理一个对象并返回一个值。
这个方法有点复杂,有很多JNI分配。
我想使用 GDB 调试我的 JNI 方法并使用 Valgrind 检查它的内存,但是使用 javam 这个任务听起来很复杂。
所以我的问题是,是否可以创建一个调用 JNI 函数的 C 函数,其调用方式与 java 的调用方式接近?
像这个例子:
JNIEXPORT jint JNICALL Java_test_Test_func (JNIEnv *env, jobject obj, jstring jstr){
const char *p_str;
p_str = (*env)->GetStringUTFChars(env, jstr, 0);
return char[2];
}
int main(int argc, char **argv){
JNIEnv env;
jstring test = env->NewStringUTF(env, "vals");
printf("%d\n", Java_test_Test_func(&env, NULL, test));
//Expects: 108
return 0;
}
我是一名优秀的程序员,十分优秀!