スポンサーリンク

CORE(5) FreeBSD ファイルフォーマットマニュアル CORE(5)

名称

core − メモリイメージのファイルフォーマット

書式

#include <sys/param.h>

解説

プロセスを異常終了させるシグナルのうちのいくつかは、プロセスのメモリ内状 態の記録をディスクに書き出させる効果もあります。これにより、利用可能なデ バッガのどれかを使用して後で検査を行うことが可能です (sigaction(2) を参照 してください)。このメモリイメージは、デフォルトでは作業ディレクトリの プ ログラム名.core という名前のファイルに書かれます。ただし、終了したプロセ スがそのディレクトリに書きこみ権限を持ち、発生した異常がシステムを破壊し ないことが前提です。 (システムが破壊された場合には、コアファイルを保存す るかどうかの決定は不定です。 savecore(8) を参照してください。)

コアファイルの最大サイズは setrlimit(2) により制限されます。制限よりもサ イズの大きなファイルは生成されません。

コアファイル名は sysctl(8) 変数 kern.corefile にて制御されます。この変数 の内容がコアイメージを格納するファイルの名前を示します。このファイル名は 絶対パスでも相対パスでもかまいません (後者の場合、コアイメージを生成する プログラムの現在のディレクトリから解決されます)。このファイル名テンプレー ト中にあるシーケンス %N はいずれもプロセス名で置き換えられ、 %P はプロセ スの PID で置き換えられ、 %U は UID で置き換えられます。デフォルトの名前 は %N.core であり、伝統的な FreeBSD の振舞いとなります。

デフォルトでは、実ユーザまたは実効ユーザ、あるいは実グループまたは実行グ ループが変更されているプロセスはコアファイルを生成しません。この動作は sysctl(8)kern.sugid_coredump を 1 にすることによりコアダンプを生成す るように変更できます。

使用例

全コアイメージを、 /var/coredumps 以下のユーザごとのプライベート領域に格 納するためには、次のように sysctl(8) コマンドを使用します:

sysctl kern.corefile="/var/coredumps/%U/%N.core"

関連項目

gdb(1), kgdb(1), setrlimit(2), sigaction(2), sysctl(8)

歴史

core ファイルのフォーマットは Version 6 AT&T UNIX に登場しました。

FreeBSD 10.0 January 9, 2002 FreeBSD 10.0

スポンサーリンク