core(4) ファイルには、ソフトウェア障害の発生時点でのメモリーのイメージが収められており、障害の原因を調べる際にプログラマが使用します。
core(4) ファイルを生成したプログラムを特定するには、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(1) を実行しても、別のタイプのシステムで生成されたコアダンプを読み取ることは通常できないため、特定の core(4) ファイルを生成したマシンアーキテクチャーを特定するのは困難です。このため、unrecognized file メッセージが作成されます。正しいアーキテクチャが判明するまで、各種のマシンアーキテクチャで adb(1) を実行してください。
「コア」という用語は古くからあります。放射線に対する抵抗力のため、宇宙船では現在もコアメモリーを使用していますが、フェライトコアメモリーがシリコン RAM にその座を譲ったのは 1970 年代です。
クラッシュ情報の保存と表示については、『Solaris のシステム管理 (第 2 巻)』を参照してください。AnswerBook のオンラインマニュアルを使用している場合は、「system crash」と入力して検索文字列として使用します。
このメッセージは、アプリケーションが、存在しない連携プロセスと通信しようとした場合に表示されることがあります。
親プロセスを再起動して、子プロセスをもう一度作成できるようにします。これで効果がない場合は、このエラーはプログラミングエラーが原因である可能性があります。プログラムのベンダまたは作成者に更新してもらうよう要請してください。
子プロセスが存在しない、または子プロセスを待機していないプロセスによって、wait(2) システムコールが実行されました。子プロセスが事前に終了されていたか、または作成されていません。
このエラーの記号名は、ECHILD、errno=10 です。
cmdtool(1) または shelltool(1) ウィンドウの引数は、コマンドを対象としたもののはずですが、システムは該当するコマンドを発見できません。
このコマンドを cmdtool(1) または shelltool(1) の内部で実行するには、コマンドのスペルが正しいこと、およびコマンドが検索パス内にあることを確認します。必要に応じてフルパス名を使用してください。この引数をオプション設定として使用する場合は、オプションの先頭にマイナス記号 (-) を付けます。
cmdtool(1) と shelltool(1) はいずれも OpenWindows 端末エミュレータです。
C シェルが、コマンドとして与えられたプログラムを見つけられません。
コマンド行の書式とスペルを調べます。正しければ、echo $path を実行して、ユーザーの検索パスが正しいかどうかを確認します。通信が不正確な場合は、組み込みシェルコマンドだけが使用可能になるように検索パスの設定を解除できます。基本的な検索パスを再設定するコマンドを次に示します。
% set path = (/usr/bin /usr/ccs/bin /usr/openwin/bin .) |
C シェルの詳細については、csh(1) のマニュアルページを参照してください。