コアダンプとは
コアダンプは、重大なエラーが発生したときのコンピューターのメモリの内容の記録です。 システムメモリ全体、または失敗したプログラムによって使用されていた部分のみが含まれる場合があります。 プロセッサの状態、レジスタの内容、実行中のプロセスに関する情報など、他の関連データも含まれる場合があります。 ソフトウェアエンジニアは、デバッガーやその他のユーティリティでコアダンプを頻繁に使用して、コンピューターエラーを分析および修正します。 コアダンプは、通常の動作中にプロセッサ間で作業プロセスを転送するためにも使用できます。
「コアダンプ」という用語は、初期のコンピューターで磁気コアメモリが使用されていた1960年代に由来する可能性があります。 実行中のプログラムがクラッシュすると、コア全体のすべてのデータがデバッグに役立つように紙に印刷されました。 これらの印刷は、通常、メモリアドレスと8進数または16進数のデータで構成されています。 ストレージテクノロジーが改善されると、コアダンプをディスク、リムーバブル磁気テープ、または不揮発性メモリスティックに保存できます。 ソフトウェアデバッグの進歩に伴う状態情報のストレージ容量の増加により、エラー診断がより効率的になりました。
コアダンプの一般的な原因は、記述が不十分なアプリケーションまたはシステムソフトウェアです。 多くの場合、プログラムコードは、ポインターと配列インデックスが常に有効なデータ構造を参照することを前提としています。 たとえば、これらのいずれかが元の構造の境界を超えて移動した場合、コアダンプが発生する可能性があります。 ストレージデバイス上のデータファイルへのアクセスまたは破損したデータの読み取りの問題により、コアダンプも発生する場合があります。 メモリ、ハードディスク、またはプロセッサの誤動作などのハードウェアの問題も、それらを引き起こす可能性があります。
通常、コアダンプには2つのタイプがあります。 1つのタイプは、実行中のプロセスまたはアプリケーションプログラムが終了し、制御がオペレーティングシステムに戻る場合です。 この場合、問題のプログラムのみが停止されたため、システムの残りの部分は正常に機能し続けます。 通常、大きなコアダンプファイルが生成され、デバッガにロードできます。 シンボルとソースコードが使用可能なプログラムでエラーが発生した場合、これらもデバッガにロードできます。
他のより深刻なタイプのコアダンプは、カーネルパニックとも呼ばれます。 このタイプのダンプは、さらなる複雑化とデータ破損を防ぐために、システム全体を停止します。 MicrosoftWindows®システムでは、この種のダンプは通常、「死のブルースクリーン」というまったく馴染みのある形で発生します。 このようなパニックは通常、デバッグが難しく、多くの場合、ハードウェアまたはシステムレベルの問題が原因です。 これらは、実際の原因に関する情報がほとんどない場合に、システムの起動が完了する前に発生する可能性があります。