JNI_CreateJavaVM堆栈损坏?

时间:2015-04-30 17:20:52

标签: java c java-native-interface stack

使用JNI_CreateJavaVM(),GetStaticMethod(),CallStaticVoidMethod()等调试试图在jar中调用某些java函数的c项目。 使用 - > openJdk 1.6.045。

我写了一个类似于这个的小测试程序: Sample program calling Java from C

哪个有效。

当我将其与许多其他代码集成时,问题就来了。其他代码在JNI_CreateJavaVM()之后不久崩溃 - (其他代码正常工作)。似乎JNI_CreateJavaVM()混乱了堆栈 如果我像这样设置JavaVM:

JavaVMOption options[2];
// Adjust stacksize.
options.[0].optionString = "path/to/class";
options.[1].optionString = "-Xss65536k";
vm_args.nOptions = 2;
vm_args.options = options;
int ret = JNI_CreateJavaVM(&jvm, (void **) &jenv, &vm_args);    

然后C程序继续开心,否则,如果我省略" -Xss"选项,C程序在尝试访问堆栈时终止。

有关真实情况的任何线索?我怀疑堆栈损坏,但我希望能够确定发生了什么。

0 个答案:

没有答案