日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
CORE(5) FreeBSD ファイルフォーマットマニュアル CORE(5)
名称
core -- メモリイメージのファイル形式
書式
#include <sys/param.h>
解説
また、プロセスの異常終了を引き起こすわずかなシグナルによって、プロセスの
インコア (in-core) 状態の記録は、利用可能なデバッガの 1 つによって後の検
査のためにディスクに書き込まれます。(sigaction(2) を参照。) このメモリイ
メージは、作業ディレクトリのデフォルトで programname.core と名前が付けら
れるファイルに書き込まれます。終了したプロセスにディレクトリに書き込み
パーミッションがあったという条件で、異常状態でも、システムクラッシュを引
き起こしません。(このイベントで、コアファイルを保存する決定は、不定です、
savecore(8) を参照。)
コアファイルの最大サイズは、RLIMIT_CORE setrlimit(2) の制限によって制限さ
れます。制限より大きなファイルは、作成されません。
大きな制限で、非常に大きな、そしておそらく装着の少ない仮想メモリ領域を
マップしたプロセスは、コアダンプを作成するために非常に長い時間を要しま
す。システムは、書き込みを終了して、プロセスを直ちに終了させる SIGKILL を
除いて、コアファイルを書き込んでいるプロセスに送られたすべてのシグナルを
無視します。SIGKILL の振る舞いは、調整変数 sysctl(8) 変数
kern.core_dump_can_intr を 0 に設定することによって無効にすることができま
す。
ファイルの名前は、sysctl(8) 変数 kern.corefile によって制御されます。この
変数の内容は、コアイメージを格納するファイル名を記述しています。このファ
イル名は、(それを生成するプログラムの現在の作業ディレクトリを決める) 絶対
パスまたは相対パスを指定できます。
次の形式指定子は、追加の情報を結果のコアファイル名に挿入するために
kern.corefile sysctl で使用されます:
%H マシンホスト名。
%I sysctl debug.ncores が到達されるまで、0 で開始されるイン
デックス。これは、特定のプロセスによって生成されたコア
ファイルの数を制限するために役に立ちます。
%N プロセス名。
%P プロセス PID。
%S コアを作成する間にシグナルを送る。
%U プロセス UID。
名前は、従来の FreeBSD の振る舞いをもたらす %N.core をデフォルトとしま
す。
デフォルトで、実であろうと実効であろうとユーザまたはグループの資格証明を
変更するプロセスは、コアファイルを作成しません。この振る舞いは、sysctl(8)
変数 kern.sugid_coredump を 1 に設定することによってコアダンプを生成する
ように変更することができます。
次の項目がカーネル設定ファイルに含められているなら、コアファイルをカーネ
ルによって圧縮することができます:
options GZIO
次の sysctl は、コアファイル圧縮を制御します:
kern.compress_user_cores ユーザコアの圧縮を有効にします。1 の
値は、gzip(1) 圧縮を設定し、2 の値
は、zstd(1) 圧縮を設定します。圧縮さ
れたコアファイルには、選択された形式
に依存しているそれらのファイル名に追
加された `.gz' または `.zst' の接尾
辞があります。
kern.compress_user_cores_level 圧縮レベル。デフォルトは、6 です。
注
コアファイルは、ELF の注としてオープンされたファイル記述子情報で書き込ま
れます。デフォルトで、ファイルパスは、必要に応じて同じくらい多くの空間を
使用するだけのためにパックされます。しかしながら、ファイルパスは、コアダ
ンプの間を含んで、いつでも変更することができ、これは、切り詰められたファ
イル記述子データの結果となります。
すべてのファイル記述子情報は、パックすることを無効にすることによって保存
することができます。これは、オープンされた fd ごとに PATH_MAX バイトま
で、潜在的に無駄になます。パックすることは、
sysctl kern.coredump_pack_fileinfo=0
で無効にされます。
同様に、corefile は、ファイルパスを含んでいる、ELF の注として vmmap 情報
をつけて書き込まれます、デフォルトで、それらは、必要されるのと同じくらい
多くの空白だけを使用するために、パックされます。オープンされるファイルの
注に関して同じメカニズムによって、これらのパスは、またいつでも変更するこ
とができ、切り詰められた注の結果となります。
すべての vmmap 情報は、パックを無効にすることによって保存することができま
す。ファイル情報のように、これは、マップされたオブジェクトごとに PATH_MAX
バイトまで潜在的に無駄になます。パックすることは、
sysctl kern.coredump_pack_vmmapinfo=0
で無効にされます。
使用例
すべてのコアイメージを /var/coredumps 下のユーザごとのプライベート領域に
格納するためには、次の sysctl(8) コマンドを使用することができます:
sysctl kern.corefile=/var/coredumps/%U/%N.core
関連項目
gdb(1), gzip(1), kgdb(1), setrlimit(2), sigaction(2), sysctl(8)
歴史
core ファイルの形式は、Version 1 AT&T UNIX で登場しました。
FreeBSD 13.2 October 5, 2021 FreeBSD 13.2