JVMクラッシュ時のヒープダンプを採取したい
だから私は簡単なコードを書いた
public class Test {
private String name;
public Test(String name) {
this.name = name;
}
public void execute() {
Map<String,String> randomData = new HashMap<String,String>();
for(int i=0;i<1000000000;i++) {
randomData.put("Key:" + i,"Value:" + i);
}
}
public void addData() {
}
public static void main(String args[]) {
String myName = "Aniket";
Test tStart = new Test(myName);
tStart.execute();
}
}
そして、私は次のように実行しています
[aniket@localhost Desktop]$ java -cp . -Xms2m -Xmx2m Test
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at Test.execute(Test.java:15)
at Test.main(Test.java:25)
必要な OutOfMemoryError を取得しましたが、作業ディレクトリにヒープ ダンプがありません (hs_err_pidXXXX.log
期待していたように)。私は何が欠けていますか?ヒープダンプを取得するにはどうすればよいですか?
アップデート :
私は-XX:ErrorFile=.
まだ役に立たなかった。上記の方法でヒープ ダンプ (JVM のクラッシュ) を取得できない場合、JVM をクラッシュさせてこれらのログを取得するにはどうすればよいですか?