セグメント例外は、通常、プログラミングエラーによって発生します。読み取り専用ファイルシステムを除き、通常、このメッセージはコアダンプを伴います。
core(4) ファイルを作成したプログラムを特定するには、file(1) コマンドまたは adb(1) コマンドを実行します。dtmail プログラムによって作成された core ファイルに対して 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 (adb プログラムを終了するには Control-d と入力します。) |
プロセスが、保護されているかまたは存在しないメモリー領域へアクセスしようとしたことを示すシグナルを受信しました。セグメント例外の最も一般的な 2 つの原因は、ヌルポインタを用いて関接参照をしようとした、または境界を越える添字で配列を参照したことです。