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

ヘッダー形式

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

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

例A-1 クラッシュからのサンプル・ヘッダー

#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x417789d7, pid=21139, tid=1024
#
# Java VM: Java HotSpot(TM) Client VM (1.6.0-rc-b63 mixed mode, sharing)
# Problematic frame:
# C  [libNativeSEGV.so+0x9d7]

#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

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

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

例A-2 ヘッダー形式の2行目

#  SIGSEGV (0xb) at pc=0x417789d7, pid=21139, tid=1024
      |      |           |             |         +--- thread id
      |      |           |             +------------- process id
      |      |           +--------------------------- program counter
      |      |                                        (instruction pointer)
      |      +--------------------------------------- signal number
      +---------------------------------------------- signal name

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

例A-3 ヘッダー形式の3行目

# Java VM: Java HotSpot(TM) Client VM (1.6.0-rc-b63 mixed mode, sharing)

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

例A-4 ヘッダー形式の4行目

# Problematic frame:
# C  [libNativeSEGV.so+0x9d7]
  |              +-- Same as pc, but represented as library name and offset.
  |                  For position-independent libraries (JVM and most shared
  |                  libraries), it is possible to inspect the instructions
  |                  that caused the crash without a debugger or core file
  |                  by using a disassembler to dump instructions near the
  |                  offset.
  +----------------- Frame type

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

表A-1 フレーム・タイプ

フレーム・タイプ 説明

C

ネイティブCフレーム

j

インタープリタJavaフレーム

V

VMフレーム

v

VM生成のスタブ・フレーム

J

その他のフレーム・タイプ(コンパイル済みJavaフレームなど)


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

例A-5 内部エラーのヘッダー形式

#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# Internal Error (4F533F4C494E55583F491418160E43505000F5), pid=10226, tid=16384
#
# Java VM: Java HotSpot(TM) Client VM (1.6.0-rc-b63 mixed mode)

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

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


ノート:

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

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

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


目次      

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