Aggavara

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年8月20日

摘要: 此问题研究了将近一个月,最终发现由于JNI不支持C中创建共享内存而导致虚拟机无法识别这块共享内存,造成内存冲突,最终虚拟机崩溃。注意:JNI的C部分所使用的内存也是由JVM创建并管理的,所以C创建了共享内存,而JVM不知道,产生冲突而崩溃。解决方法:1 采用JNI自己的共享内存创建方式(未详细调查)2 仅通过JNI读取其他C程序(非JNI)创建的共享内存(未调查,应该没问题)查此问题小技巧:通过/var/log/message文件查出JVM terminated的问题原因:segfault通过java dump文件查出具体程序运行细节问题:无法获取shared memory等日志内容不断注释掉 阅读全文
posted @ 2013-08-20 17:18 Aggavara 阅读(1742) 评论(0) 推荐(0) 编辑