2015-12-02 14 views
9

質問防止プログラムは、トレース

なぜオブジェクト割り当てスタックトレースを表示しようとすると、VisualVMのは、私のプログラムを終了しない、と私はそれをどのように修正するのですか?


私は最大のビーイングは、GCが狂ったように火になり短命int[]の束を作成し、いくつかのメモリの問題を持つアプリケーションをクリーンアップしています:

enter image description here

int[]を右クリックし、スナップショットを取って割り当てスタックトレースを表示を選択すると、アプリケーションが終了し、警告ボックスが表示されます。結果スナップショットの取得に失敗しました。アプリケーションはを終了:私は主題で見つけ

enter image description here

最も近いものは、バグレポートrecommended running my profiled application with -Xnoclassgcました。それは動作しませんでした、結果は同じでした。


仕様

VisualVM: 1.8.0_60 (Build 1380-140910); platform 20140910-unknown-revn 
Java: 1.8.0_60; Java HotSpot(TM) 64-Bit Server VM (25.60-b23, mixed mode) 
Eclipse: Luna Release (4.4.0) Build id: 20140612-0600 
System: Windows 7 (6.1) Service Pack 1, amd64 64bit 

クラッシュログ

http://pastebin.com/a4YPWutj

を超えたクラッシュログのサイズ文字の制限、私はそれを他の場所に置かなければならなかった。ごめんなさい。

+0

最初に質問してください: 1. Eclipseは今説明したこの状況に関係していますか?あなたのEclipse版をリストアップしましたが、別の方法で言及していませんでした。 2. Javaおよびシステムの情報は、アプリケーションを実行しているサーバーから取得しましたか? –

+0

また、アプリケーションがクラッシュすると、デバッグの目的でクラッシュレポートが保存されるはずです。ファイル(hprof?)を見つけて、関連するコンテンツをここに貼り付けることはできますか? –

+0

Java Mission Control(jmc.exe)をテストしますか?これは同じツールですが、Java8では無料の機能はありません。しかし、VisualVMと同じことができます。 –

答えて

5

JVM being profiled crashes

元バグの提出者がJava8までこの動作を狭め、あなたが持っている最高のチャンス:そのようにして得られcrashlogに基づいて、それはあなたがすでにここ報告VisualVMのバグに遭遇したように見えます古い(Java7)ランタイムでVisualVMを実行しています。これがオプションの場合は、Java7 JDKをダウンロードしてそこから直接VisualVMを実行するだけです。

+0

Aw man、Java 7を使用しているのでJMCを使用することができると思います。/これは見つけてくれてありがとう! –