CORE(5) | FreeBSD File Formats Manual | CORE(5) |
名称
core — メモリイメージのファイル形式書式
#include < sys/param.h>解説
また、プロセスの異常終了を引き起こすわずかなシグナルによって、プロセスのインコア (in-core) 状態の記録は、利用可能なデバッガの 1 つによって後の検査のためにディスクに書き込まれます。 ( sigaction(2) を参照。) このメモリイメージは、作業ディレクトリのデフォルトで programname.core と名前が付けられるファイルに書き込まれます。終了したプロセスにディレクトリに書き込みパーミッションがあったという条件で、異常状態でも、システムクラッシュを引き起こしません。 (このイベントで、コアファイルを保存する決定は、不定です、 savecore(8) を参照。)コアファイルの最大のサイズは、 setrlimit(2) によって制限されています。制限より大きなファイルは、作成されません。
ファイルの名前は、 sysctl(8) 変数 kern.corefile によって制御されます。この変数の内容は、コアイメージを格納するファイル名を記述しています。このファイル名は、(それを生成するプログラムの現在の作業ディレクトリを決める) 絶対パスまたは相対パスを指定できます。
次の形式指定子は、結果のコアファイル名に追加情報を挿入するために kern.corefile で使用されます:
- %H
- マシンホスト名。
- %I
- sysctl debug.ncores が到達されるまで、0 で開始されるインデックス。これは、特定のプロセスによって生成されたコアファイルの数を制限するために役に立ちます。
- %N
- プロセス名。
- %P
- プロセス PID。
- %U
- プロセス UID。
名前は、従来の FreeBSD の振る舞いをもたらす %N.core をデフォルトとします。
デフォルトで、実であろうと実効であろうとユーザまたはグループの資格証明を変更するプロセスは、コアファイルを作成しません。この振る舞いは、 sysctl(8) 変数 kern.sugid_coredump を 1 に設定することによってコアダンプを生成するように変更することができます。
次の項目がカーネル設定ファイルに含まれているなら、カーネルによってコアファイルを圧縮することができます:
- options
- COMPRESS_USER_CORES
- devices
- gzio
COMPRESS_USER_CORES が含まれているとき、次の sysctl は、コアファイルが圧縮されているどうかを制御できます:
- kern.compress_user_cores_gzlevel
- gzip 圧縮レベル。デフォルトは、-1 です。
- kern.compress_user_cores
- 実際に圧縮されているユーザコア。コアファイルは、それらに追加された接尾辞 .gz があります。
使用例
すべてのコアイメージを /var/coredumps 下のユーザごとのプライベート領域に格納するためには、次の sysctl(8) コマンドを使用することができます:
sysctl kern.corefile=/var/coredumps/%U/%N.core
歴史
core ファイルの形式は、 Version 6 AT&T UNIX で登場しました。November 22, 2012 | FreeBSD |