Ulimitを使用して無制限のコアファイルサイズを有効にしました。
ulimit -a
core file size (blocks, -c) unlimited
...
コアダンプをトリガーしたと思いますが、自分の家、var/...などでコアファイルを見つけることができません。
Ubuntuがコアダンプの場所を構成する場所を知っていますか?
これは特定のUbuntuのものよりもLinuxカーネルのものだと思います。チェックアウト
cat /proc/sys/kernel/core_pattern
デフォルトでは、Ubuntuカーネルはapportを使用してコアダンプを記録するように設定されています。これを上書きするには、/proc/sys/kernel/core_pattern
を上書きします。詳細については、man core
の「コアダンプファイルの命名」セクションを確認してください。例えば:
echo '/tmp/core.%e.%p.%t' | Sudo tee /proc/sys/kernel/core_pattern
Apportはコアダンプを/var/crash/_path_to_program.userid.crash
に書き込みますが、メインのubuntu aptリポジトリからインストールされたアプリケーションに対してのみ書き込みを行います。
Apportの詳細: https://wiki.ubuntu.com/Apport
Ubuntu 16.04.3 LTSでは、私のコアダンプは次の場所にあります。
/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000
したがって、gdb
で実行するには、次のコマンドを実行します。
apt install gdb gdb /path/to/your/binary/application-name /var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000