mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			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);
 | 
						|
}
 |