2017-01-10 9 views
1

特殊な例外が発生したときにJavaダンプを作成できますか?例外が発生したときにダンプメモリをチェックする必要があるので、たとえばnullpointerexceptionが発生したときなど、自動的にダンプを生成することができます。私たちは知っている.netプラットフォームは、このようなツールのprocdump https://technet.microsoft.com/en-us/sysinternals/dd996900.aspxを持って、私はJavaにも同様の方法があるかどうか分からない? http://five.agency/java-heap-dump:特別な例外が発生したときにJavaダンプを作成できますか?

+1

をしたい任意の時点でヒープ・ダンプをキャプチャするためにキャッチ内のコードの下に置くことができます/ およびhttp://docs.oracle.com/javase/7/docs/technotes/tools/share/jhat.html – user1097772

+0

この例外がスローされると、デバッガとブレークポイントが使用されます。 –

+0

@ user1097772、これはOOM例外を処理するだけですが、どのようなタイプの例外も捕捉する必要があります。 –

答えて

0

あなたはこれをチェックしてみてください、必要な例外を処理し、あなたが

ObjectName memoryMXBean = new ObjectName("com.sun.management:type=HotSpotDiagnostic"); 
Object[] params = new Object[] { "myHeapDump.hprof", Boolean.TRUE }; 
String[] signature = new String[] { String.class.getName(), boolean.class.getName() }; 
Object result = connection.invoke(memoryMXBean, "dumpHeap", params, signature); 
+0

例外が発生する可能性があるすべての場所にコードを記述する必要がありますが、コードを変更する必要がありますが、procdumpのようなコードを書き直すことなくダンプを取得する必要があります。 –

+0

@Hermas http://stackoverflow.com/a/23640439/4090550 私は同じことをテストする時間を見つけられませんでしたが、試してみることができます –

関連する問題