主要メッセージの手引き

コアダンプしました。

原因

コアファイルには、ソフトウェア障害の発生時点でのメモリーのイメージが収められており、障害の原因を調べる際にプログラマが使用します。

対処方法

コアファイルを生成したプログラムを特定するには、file(1) コマンドまたは adb(1) コマンドを実行します。dtmail からのコアファイルに対して fileadb の各コマンドを実行した場合の出力内容を、次の例に示します。

$ 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 または同様のデバッガを使用して自分でデバッグできます。dbxwhere 命令を実行するとスタックトレースが得られます。

混在ネットワークでは、あるタイプのシステムで adb を実行しても、別のタイプのシステムで生成されたコアダンプを読み取ることは通常できないため、特定のコアダンプを生成したマシンアーキテクチャーを特定するのは困難です。このため、「unrecognized file」メッセージが作成されます。正しいアーキテクチャーが判明するまで、各種のマシンアーキテクチャーで adb を実行してください。

「コア」という用語は古くからあります。放射線に対する抵抗力のため、宇宙船では現在もコアメモリーを使用していますが、フェライトコアメモリーがシリコン RAM にその座を譲ったのは 1970 年代です。

関連項目

クラッシュ情報の保存と表示については、『Solaris のシステム管理 (第 2 巻)』を参照してください。AnswerBook を使用している場合は、「システムクラッシュ」と入力して検索文字列として使用します。

このデバイスは使用中です。

原因

マウント済みのデバイスにマウントしようとしたか、またはアクティブなファイル (オープンファイル、カレントディレクトリ、マウントポイント、実行中のプログラムなど) が入っているデバイスへのマウントを解除しようとしました。また、このメッセージは、すでに使用可能状態になっているアカウンティングを使用可能にしようとした場合にも表示されます。

対処方法

アクティブプロセスを含むデバイスのマウントを解除するには、そのマウントポイントの下にあるすべてのファイルを閉じ、そこから開始しているプログラムがあれば終了し、ディレクトリをその階層から変更します。次に、もう一度マウントを解除します。

テクニカルノート

mutex、セマフォ、条件変数、読み取り/書き込みロックは、このエラー状態を設定することによって、ロックが保持されていることを示します。

このエラーのシンボルの名前は、EBUSY、errno=16 です。

子プロセスがありません。

原因

このメッセージは、アプリケーションが、存在しない連携プロセスと通信しようとした場合に表示されることがあります。

対処方法

親プロセスを再起動して、子プロセスをもう一度作成できるようにします。これで効果がない場合は、プログラミングエラーの可能性があります。プログラムのベンダまたは作成者にアップデートを問い合わせください。

テクニカルノート

子プロセスが存在しない、または子プロセスを待機していないプロセスによって、wait(2) システムコールが実行されました。子プロセスが事前に終了されていたか、または作成されていません。

このエラーのシンボルの名前は、ECHILD、errno=10 です。

コマンドウィンドウは、子ウィンドウが終了したので、終了しました。

原因

cmdtool(1) または shelltool(1) ウィンドウの引数はコマンドを対象としたものであるはずですが、システムは該当するコマンドを発見できません。

対処方法

このコマンドを cmdtool または shelltool の内部で実行するには、コマンドのスペルが正しいこと、およびコマンドが検索パス内にあることを確認します (必要に応じてフルパス名を使用してください)。この引数をオプション設定として使用する場合は、オプションの先頭にマイナス記号 (-) を付けます。

テクニカルノート

cmdtoolshelltool はいずれも OpenWindows 端末エミュレータです。

コマンドが見つかりません。

原因

C シェルが、コマンドとして与えられたプログラムを見つけられません。

対処方法

コマンド行の書式とスペルを調べます。正しければ、echo $path を実行して、ユーザの検索パスが正しいかどうかを確認します。通信が不正確な場合は、組み込みシェルコマンドだけが使用可能になるように検索パスの設定を解除できます。基本的な検索パスを再設定するコマンドを次に示します。

 % set path = (/usr/bin /usr/ccs/bin /usr/openwin/bin .)

検索パスが正しければ、検索パスに沿ってディレクトリの内容を調べ、プログラムが失われていないか、またはディレクトリのマウントが解除になっていないかどうかを確認します。

関連項目

C シェルの詳細については、csh(1) のマニュアルページを参照してください。