- - PR -
スタックオーバーフローについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-21 10:06
Javaプログラムのバッチを起動したところ以下のようなメッセージが出力されました。
------------------------------------------------------- An irrecoverable stack overflow has occurred. Unexpected Signal : 10 occurred at PC=0xE7F5B408 Function name=__vc__4DictCFPCv Compiler thread crashed while compiling a method! : : Local Time = Mon Dec 19 15:18:03 2005 Elapsed Time = 6 # # HotSpot Virtual Machine Error : 10 # Please report this error to HP customer support. # # Java VM: Java HotSpot(TM) Server VM (1.3.1 1.3.1.16-_14_apr_2005_22_29 PA2.0 mixed mode) # # An error report file has been saved as hs_err_pid26788.log. # Please refer to the file for further information. # ------------------------------------------------------- ログの内容からスタック不足と読み取れますが、どのような場合に スタック不足となるのでしょうか? 単なるメモリ不足によるものなのか判断出来ずにいます。 環境は下記の通りです。 ・HP-UX11.0 ・JDK 1.3.1 | ||||||||
|
投稿日時: 2005-12-21 10:29
Java のプログラム上のスタックオーバーフローなら Java の例外としての StackOverflowException が発生するのですが、今回の場合はこれではなく、Java の実行環境の中の、Java のプログラマーが関知できない部分でのスタックオーバーフローなので、基本的にはプログラム上では対処できません。 HP の JDK のバグになるので、これのパッチやバージョンアップを検討すべきでしょう。
ただ、このエラーメッセージを見ると、「Compiler thread crashed while compiling a method!」とあるので、もしかしたらコードを多少手直しすると、このエラーを回避できる可能性もあります。正しいのだけれど、奇天烈・奇想天外なコードを書いていると、JDK のバグに遭遇してしまうのかもしれません。クラスの中で、フィールドをたくさん使っていたり、巨大なメソッドがあったら分割するなどしてみてはどうでしょうか。 #以下、あとで追加。 根本的な解決ではないかもしれませんが、 http://docs.hp.com/ja/5323/JavaSDK-Release-Notes-1_3_1_13-jp.htm あたりのオプションをいじってみることでしょうか。 [ メッセージ編集済み 編集者: unibon 編集日時 2005-12-21 10:34 ] |
1