[Linux] coreファイルの生成設定

Linuxでは、デフォルトではcoreファイルは生成されない。以下の様にして生成されるように設定&確認。

手順

1. 設定値の確認

$ ulimit -a
core file size           (blocks, -c) 0
data seg size          (kbytes, -d) unlimited
scheduliing priority             (-e) 0
file size                  (blocks, -f) unlimited
.....

2. 設定

$ ulimit -c ulimit

3. 確認

3-(1) 設定値の再確認

$ ulimit -a
core file size           (blocks, -c) unlimited
data seg size          (kbytes, -d) unlimited
scheduliing priority             (-e) 0
file size                  (blocks, -f) unlimited
.....

3-(2) 実際にcoreファイルが作成されるかどうかを確認 

a. 以下のファイルを編集

$ vi test_core.c
int main()
{
  int i = 10 / 0;
  return 0;
}

b. コンパイル

$ make test_core
cc     test_core.c    -o test_core
test_core.c: In function `main':
test_core.c:3: 警告: division by zero

c. 実行

$ ./test_core
浮動小数点演算例外です (core dumped)
$ ls core*
core.5799

コメント