Java Platform, Standard Editionトラブルシューティング・ガイド
目次      

ヘッダー形式

すべての致命的エラー・ログ・ファイルの先頭にあるヘッダー・セクションには、問題の簡易説明が含まれます。このヘッダーは、標準出力にも出力されるほか、アプリケーションの出力ログに現れる可能性もあります。

ヘッダーにはHotSpot仮想マシン・エラー報告ページへのリンクが含まれていますが、そのページではユーザーがバグ・レポートを提出できます。

例A-1は、予期しないシグナルでVMがクラッシュしたことを示しています。

例A-2に示すように、次の行には、シグナルのタイプ、シグナルの原因となったプログラム・カウンタ(pc)、プロセスID、およびスレッドIDが記述されています。

例A-3に示すように、次の行には、VMのバージョン(Client VMまたはServer VM)、アプリケーションが混合モード、インタプリタ・モードのどちらで実行されたかを示す情報、およびクラス・ファイル共有が有効かどうかを示す情報が含まれます。

例A-4に示すように、その次の情報は、クラッシュの原因となった関数フレームです。

この例のフレーム・タイプ「C」は、ネイティブCフレームを示しています。表A-1は、可能なフレーム・タイプを示しています。

内部エラーが発生した場合も、VMエラー・ハンドラによって似たようなエラー・ダンプが生成されます。ただし、ヘッダー形式が異なります。内部エラーの例としては、guarantee()の失敗、アサーションの失敗、ShouldNotReachHere()などが挙げられます。例A-5は、内部エラーのヘッダー形式を示しています。

上のヘッダーにはシグナル名やシグナル番号がありません。2行目にはかわりに、Internal Errorと長い16進文字列が含まれるようになっています。この16進文字列は、エラーが検出されたソース・モジュールと行番号をエンコードしたものです。この「エラー文字列」は一般に、HotSpot仮想マシンを操作するエンジニアにしか役に立ちません。

エラー文字列は行番号をエンコードしているため、コード変更やリリースのたびに変わります。あるリリース(1.6.0など)の特定のエラー文字列を含むクラッシュは、(文字列が一致する場合でも)更新リリース(1.6.0_01など)の同じクラッシュに対応しない可能性があります。


注:

特定のエラー文字列に関連する1つの状況で機能した回避方法や解決方法は、その同じエラー文字列に関連する別の状況でも機能すると考えないでください。次の事実に注意してください。
  • エラーの根本的原因が同じでも、エラー文字列は異なることがあります。

  • エラーのエラー文字列が同じでも、根本的原因は完全に異なることがあります。

したがって、バグのトラブルシューティングを行う際に、エラー文字列を唯一の基準として使用すべきではありません。


目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.