コアファイルには、ソフトウェア障害の発生時点でのメモリーのイメージが収められており、障害の原因を調べる際にプログラマが使用します。
コアファイルを生成したプログラムを特定するには、file(1) コマンドまたは adb(1) コマンドを実行します。dtmail からのコアファイルに対して file と adb の各コマンドを実行した場合の出力内容を、次の例に示します。
$ file core core: ELF 32-bit MSB core file SPARC Version 1, from `dtmail' $ adb core core file = core -- program `dtmail' SIGSEGV 11: segmentation violation ^D (use Control-d to quit the program) |
プログラムのベンダまたは作成者に、デバッグ済みのバージョンを要求してください。
SIGQUIT、SIGBUS、SIGSEGV など、一部のシグナルはコアファイルを生成します。該当するシグナルの完全なリストについては、signal(5) のマニュアルページを参照してください。
プログラムのソースコードがある場合は、cc -g によってコンパイルし、dbx または同様のデバッガを使用して自分でデバッグできます。dbx の where 命令を実行するとスタックトレースが得られます。
混在ネットワークでは、あるタイプのシステムで adb を実行しても、別のタイプのシステムで生成されたコアダンプを読み取ることは通常できないため、特定のコアダンプを生成したマシンアーキテクチャーを特定するのは困難です。このため、「unrecognized file」メッセージが作成されます。正しいアーキテクチャーが判明するまで、各種のマシンアーキテクチャーで adb を実行してください。
「コア」という用語は古くからあります。放射線に対する抵抗力のため、宇宙船では現在もコアメモリーを使用していますが、フェライトコアメモリーがシリコン RAM にその座を譲ったのは 1970 年代です。
クラッシュ情報の保存と表示については、『Solaris のシステム管理 (第 2 巻)』を参照してください。AnswerBook を使用している場合は、「システムクラッシュ」と入力して検索文字列として使用します。