Help us understand the problem. What is going on with this article?

実践デバッグ技法を読んでの気付き vol.1 coreファイルについて

More than 5 years have passed since last update.

coreファイルについて

実践デバッグ技法を読んでの気付きというなの備忘録。

coreファイルとは

UNIX系OSにおいて、プログラムがエラーにより不正終了する際に、
メモリやレジスタの内容をディスクに記録すること。
もしくは記録したファイル。

参照:e-Words コアダンプより

coreファイルを出力するサンプルプログラム

sigsegv.c

#include <stdio.h>

int main( void )
{
  char* c = 0;
  printf( "%s/n", *c );

  return 0;
}

coreファイルの出力確認

【コマンド】

$ ulimit -a

【出力結果】
core file size (blocks, -c) 0 ※※※ 「0」の場合は出力されません。
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 709
virtual memory (kbytes, -v) unlimited

coreファイルの出力設定

【コマンド】

$ ulimit -c unlimited

【出力結果】
core file size (blocks, -c) unlimited ※※※ 先程、「0」だったものが、 unlimited となっている
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 709
virtual memory (kbytes, -v) unlimited

サンプルプログラムのコンパイル

【コマンド】

$ gcc -g sigsegv.c -o sigsegv.out

サンプルプログラムの実行(coreファイルを出力してみる)

【コマンド】

$ ./sigsegv.out

【実行結果】

drwxrwxr-t@ 3 root admin 102B 2 10 20:55 .
drwxr-xr-x 29 root wheel 1.0K 4 4 2013 ..
-r-------- 1 **** admin 351M 2 10 20:55 core.1378

kikuchi-hiroshi
SIer系のSEを経て、オンラインゲームのサーバを担当。 現在は渋谷のソーシャルゲーム系企業に勤めるエンジニアです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away