java jni 本机错误
Error in java jni native
我有我的客户几个月前给我的 Fortran 代码,我们完成了 C 实现 (JNI),将 Fortran 声明为外部方法,然后我们可以从 C 调用 fortran,现在我们可以从JAVA.
它在 8 个库中的 1 个中工作得很好(几乎 :)),有时我们会遇到
的段错误
Stack: [0x00007f1ea63fc000,0x00007f1ea6afd000], sp=0x00007f1ea6af8f30, free space=7155k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libCMordor.so+0x5240] long double restrict+0xcac
C [libCMordor.so+0x1f84] unsigned long+0xbc8
我不知道什么会导致 long double restrict
?
结果的值大于 long double?还是别的?
如果有人可以帮助我向我展示找到解决方案的好方法,我将不胜感激。
非常感谢。
PS:我不想知道我的代码是否正常,因为很多个月以来一切正常,所以我不post在这里编写代码,但我只想了解长期双重限制问题的潜在原因 ;)
编辑1
我想我终于找到了我的解决方案。
我已经登录到 Fortran,出于我现在不明白的原因,因为代码不是我的,我对 Fortran 一无所知,我的值在很多时候和某个时候都是 1这个值是1078334587,所以我会重新发送代码给客户端,写这个代码的人可以更正这个。
我认为它是从 fortran 获取的非初始化值,地址在内存中包含一个很大的值并导致 sigsev!
最终问题出在 Fortran 中的未初始化变量!该变量获取内存中的值并说 "long double restrict" 并发送 SIGSEV 信号。我已经初始化了值,现在一切正常。找到这个问题,因为它不是我的代码,我写进去告诉我问题出在哪里。
这解释了为什么程序随机运行良好。
我有我的客户几个月前给我的 Fortran 代码,我们完成了 C 实现 (JNI),将 Fortran 声明为外部方法,然后我们可以从 C 调用 fortran,现在我们可以从JAVA.
它在 8 个库中的 1 个中工作得很好(几乎 :)),有时我们会遇到
的段错误Stack: [0x00007f1ea63fc000,0x00007f1ea6afd000], sp=0x00007f1ea6af8f30, free space=7155k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libCMordor.so+0x5240] long double restrict+0xcac
C [libCMordor.so+0x1f84] unsigned long+0xbc8
我不知道什么会导致 long double restrict
?
结果的值大于 long double?还是别的?
如果有人可以帮助我向我展示找到解决方案的好方法,我将不胜感激。
非常感谢。
PS:我不想知道我的代码是否正常,因为很多个月以来一切正常,所以我不post在这里编写代码,但我只想了解长期双重限制问题的潜在原因 ;)
编辑1
我想我终于找到了我的解决方案。
我已经登录到 Fortran,出于我现在不明白的原因,因为代码不是我的,我对 Fortran 一无所知,我的值在很多时候和某个时候都是 1这个值是1078334587,所以我会重新发送代码给客户端,写这个代码的人可以更正这个。
我认为它是从 fortran 获取的非初始化值,地址在内存中包含一个很大的值并导致 sigsev!
最终问题出在 Fortran 中的未初始化变量!该变量获取内存中的值并说 "long double restrict" 并发送 SIGSEV 信号。我已经初始化了值,现在一切正常。找到这个问题,因为它不是我的代码,我写进去告诉我问题出在哪里。
这解释了为什么程序随机运行良好。