mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-12 11:29:30 +00:00
80 lines
1.9 KiB
Java
80 lines
1.9 KiB
Java
|
/* GCInfo.java -- Support for creating heap dumps.
|
||
|
Copyright (C) 2007 Free Software Foundation
|
||
|
|
||
|
This file is part of libgcj.
|
||
|
|
||
|
This software is copyrighted work licensed under the terms of the
|
||
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||
|
details. */
|
||
|
|
||
|
package gnu.gcj.util;
|
||
|
|
||
|
public class GCInfo
|
||
|
{
|
||
|
private GCInfo()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @throws SecurityException if there is a SecurityManager installed
|
||
|
* and UtilPermission("dumpHeap") is not granted.
|
||
|
*/
|
||
|
private static void checkPermission()
|
||
|
{
|
||
|
SecurityManager sm = System.getSecurityManager();
|
||
|
if (sm != null)
|
||
|
sm.checkPermission(new UtilPermission("dumpHeap"));
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Dump a description of the heap state.
|
||
|
*
|
||
|
* @param namePrefix The filename prefix for the dump files.
|
||
|
*
|
||
|
* @throws SecurityException if there is a SecurityManager installed
|
||
|
* and UtilPermission("dumpHeap") is not granted.
|
||
|
*/
|
||
|
public static synchronized void dump(String name)
|
||
|
{
|
||
|
checkPermission();
|
||
|
dump0(name);
|
||
|
}
|
||
|
|
||
|
private static native void dump0(String name);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Create a heap dump.
|
||
|
*
|
||
|
* @param namePrefix The filename prefix for the dump files.
|
||
|
*
|
||
|
* @throws SecurityException if there is a SecurityManager installed
|
||
|
* and UtilPermission("dumpHeap") is not granted.
|
||
|
*/
|
||
|
public static synchronized void enumerate(String namePrefix)
|
||
|
{
|
||
|
checkPermission();
|
||
|
enumerate0(namePrefix);
|
||
|
}
|
||
|
|
||
|
private static native void enumerate0(String namePrefix);
|
||
|
|
||
|
/**
|
||
|
* Cause a heap dump if out-of-memory condition occurs.
|
||
|
*
|
||
|
* @param namePrefix The filename prefix for the dump files. If
|
||
|
* null no dumps are created.
|
||
|
*
|
||
|
* @throws SecurityException if there is a SecurityManager installed
|
||
|
* and UtilPermission("dumpHeap") is not granted.
|
||
|
*/
|
||
|
public static synchronized void setOOMDump(String namePrefix)
|
||
|
{
|
||
|
checkPermission();
|
||
|
setOOMDump0(namePrefix);
|
||
|
}
|
||
|
|
||
|
private static native void setOOMDump0(String namePrefix);
|
||
|
}
|