J'ai travaillé sur un projet de vision et utilisé des bibliothèques C++ en Java par JNI.
OS: Ubuntu 12.04
Dans mon projet, j'utilise boost library pour générer un nombre aléatoire. Mais parfois, je reçois une exception comme suit:
Core dum140002367330048 also had an error]
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f54f72a615a, pid=11979, tid=140002352568064
#
# JRE version: Java(TM) SE Runtime Environment (7.0_67-b01) (build 1.7.0_67-b01)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode linux-AMD64 compressed oops)
# Problematic frame:
# C [libCBIR.so+0x3215a] boost::random::mersenne_twister_engine<unsigned int, 32ul, 624ul, 397ul, 31ul, 2567483615u, 11ul, 4294967295u, 7ul, 2636928640u, 15ul, 4022730752u, 18ul, 1812433253u>::operator()()+0x3a
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
Lorsque j'ai recherché cela sur StackOverflow, j'ai découvert quelques problèmes liés à IDE (Eclipse). L'application est indépendante de l'IDE. La solution doit donc également être indépendante de l'EDI. Des idées?
Je vivais le même problème.
Comme, l'erreur elle-même suggère -
Échec de l'écriture du core dump. Les vidages mémoire ont été désactivés. Pour activer le dumping, essayez
ulimit -c unlimited
avant de relancer Java.
ulimit
obtient et définit les limites utilisateur. Pour plus d'informations sur ulimit do -
man ulimit
Alors, ouvrez un terminal et lancez -
ulimit -c unlimited
Cela devrait résoudre le problème. Pour vérifier si le changement a réussi, lancez -
ulimit -c -l
Cela devrait vous donner une sortie comme suit -
core file size (blocks, -c) unlimited
max locked memory (kbytes, -l) 64
Si le problème persiste, reportez-vous à this et this from askUbuntu .
Un vidage mémoire ou un vidage sur incident est un instantané de la mémoire d'un processus en cours d'exécution. Le système d'exploitation peut créer automatiquement un vidage de la mémoire lorsqu'une erreur fatale ou non gérée (par exemple, un signal ou une exception système) se produit.
pour plus d'informations https://docs.Oracle.com/javase/8/docs/technotes/guides/troubleshoot/bugreports004.html