此问题研究了将近一个月,最终发现由于JNI不支持C中创建共享内存而导致虚拟机无法识别这块共享内存,造成内存冲突,最终虚拟机崩溃。

注意:JNI的C部分所使用的内存也是由JVM创建并管理的,所以C创建了共享内存,而JVM不知道,产生冲突而崩溃。

解决方法:

1 采用JNI自己的共享内存创建方式(未详细调查)

2 仅通过JNI读取其他C程序(非JNI)创建的共享内存(未调查,应该没问题)

查此问题小技巧:

通过/var/log/message文件查出JVM terminated的问题原因:segfault

通过java dump文件查出具体程序运行细节问题:无法获取shared memory等日志内容

不断注释掉c中各部分代码,最终锁定创建共享内存的代码导致了此问题

最新文章

  1. UDP穿透NAT原理解析
  2. 017Makefile工程管理
  3. C和指针 (pointers on C)——第十四章:预处理器
  4. gradle中使用cobertura做代码覆盖(转)
  5. 日志组件一:Log4j
  6. easy ui Tree请求跨域数据
  7. Linux上程序调试的基石(2)--GDB
  8. plsql developer 中文乱码(???)解决办法
  9. 好用的函数,assert,random.sample,seaborn tsplot, tensorflow.python.platform flags 等,持续更新
  10. Linux(Ubuntu 16) 下Java开发环境的配置(三)------Mysql配置
  11. google guice @inject comments
  12. c# AddMonths,你了解吗?
  13. 08. pt-find
  14. bootbox弹出框插件
  15. Jquery 获取Checkbox值,prop 和 attr 函数区别
  16. 自家人不认识自家人——考你一道有趣的Javascript小题目
  17. 织梦dedecms整合discuz论坛的操作方法
  18. 网络代理-Firefox在shadow socks下面的使用
  19. 使用Beautifulsoup去除特定标签
  20. lintcode-96-链表划分

热门文章

  1. Spark(四十七):Spark UI 数据可视化
  2. JS构造函数中有return
  3. MiniUI表单验证实践
  4. linux: QT安装时出现段错误segmentation fault
  5. OpenCv dnn模块扩展研究(1)--style transfer
  6. ISO/IEC 9899:2011 条款6.7.6——声明符
  7. Python3基础 global 在函数内部对全局变量进行修改
  8. 手机wifi连上Fiddler后无网络问题解决
  9. MySQL数据库查找多个字段值全部相同的记录
  10. iOS popToViewController具体用法