web-dev-qa-db-ja.com

コアダンプの書き込みに失敗しました。コアダンプが無効化されました

私はビジョンプロジェクトに取り組んでおり、JNIのJavaでC++ライブラリを使用しています。

OS:Ubuntu 12.04

私のプロジェクトでは、乱数を生成するために boost ライブラリを使用しています。ただし、次のような例外が発生する場合があります。

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

StackOverflowでこれを検索したところ、IDE(Eclipse)に関連する問題がいくつか見つかりました。アプリケーションはIDEから独立しています。したがって、ソリューションもIDEから独立している必要があります。何か案は?

19
Omurhan Soysal

同じ問題が発生していました。

として、エラー自体が示唆している-

コアダンプの書き込みに失敗しました。コアダンプは無効になっています。コアダンプを有効にするには、ulimit -c unlimited開始する前にJava再び

ulimitは、ユーザー制限を取得および設定します。 ulimit doの詳細については-

man ulimit

したがって、ターミナルを開いて実行します-

ulimit -c unlimited

これで問題が解決するはずです。変更が成功したかどうかを確認するには、次を実行します-

ulimit -c -l

これにより、次のような出力が得られます。

core file size          (blocks, -c) unlimited
max locked memory       (kbytes, -l) 64

問題が解決しない場合は、 this および this from askUbunt を参照してください。

21

Jenkins内でこの問題が発生している場合(現状):Jenkinsからコアダンプを有効にするには、/ etc/init.d/jenkinsを編集し、$ DAEMON_ARGSに「--core」を追加します。シェルスクリプトから直接、または/etc/security/limits.confを介してulimitを設定しても機能しません。

1
Mike B

コアダンプまたはクラッシュダンプは、実行中のプロセスのメモリスナップショットです。致命的または未処理のエラー(信号やシステム例外など)が発生すると、オペレーティングシステムによってコアダンプが自動的に作成されます。

詳細情報 https://docs.Oracle.com/javase/8/docs/technotes/guides/troubleshoot/bugreports004.html

0
vishnu singh