diff options
author | David Daney <daney@gcc.gnu.org> | 2007-02-15 17:25:24 +0000 |
---|---|---|
committer | David Daney <daney@gcc.gnu.org> | 2007-02-15 17:25:24 +0000 |
commit | 7f40378f06a5723ede9c8abc23775cadcdd0037c (patch) | |
tree | ecd80f4d6cba05c29ed9420459814c84387b36bf /libjava/gnu/gcj/util/GCInfo.java | |
parent | 31429fbc3c70716cb375dc73d1d151ed769d945e (diff) | |
download | gcc-7f40378f06a5723ede9c8abc23775cadcdd0037c.zip gcc-7f40378f06a5723ede9c8abc23775cadcdd0037c.tar.gz gcc-7f40378f06a5723ede9c8abc23775cadcdd0037c.tar.bz2 |
Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
gcc/java:
2007-02-15 David Daney <ddaney@avtrex.com>
* Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
(java.maintainer-clean):Add gc-analyze.1.
(.INTERMEDIATE): Add gc-analyze.pod.
(gc-analyze.pod): New rule.
(java.install-man): Install gc-analyze.1
* gcj.texi: Add new section for the gc-analyze program.
libjava:
2007-02-15 Johannes Schmidt <jschmidt@avtrex.com>
David Daney <ddaney@avtrex.com>
* configure.ac: Create vm-tools-packages file. Add
gnu/gcj/tools/gc_analyze to standard.omit and vm-tools-packages.
Check for /proc/self/maps.
* Makefile.am (bin_PROGRAMS): Added gc-analyze.
(gc_analyze_SOURCES): New.
(gc_analyze_LDFLAGS): New.
(gc_analyze_LINK): New.
(gc_analyze_LDADD): New.
(gc_analyze_DEPENDENCIES): New.
(nat_source_files): Add gnu/gcj/util/natGCInfo.cc.
* Makefile.in: Regenerated.
* configure: Regenerated.
* include/config.h.in: Regenerated.
* sources.am: Regenerated.
* scripts/makemake.tcl: Don't include gc-analyze classes in libgcj.
* gnu/gcj/tools/gc_analyze/SymbolLookup.java: New.
* gnu/gcj/tools/gc_analyze/ObjectMap.java: New.
* gnu/gcj/tools/gc_analyze/MemoryMap.java: New.
* gnu/gcj/tools/gc_analyze/SymbolTable.java: New.
* gnu/gcj/tools/gc_analyze/BlockMap.java: New.
* gnu/gcj/tools/gc_analyze/BytePtr.java: New.
* gnu/gcj/tools/gc_analyze/ItemList.java: New.
* gnu/gcj/tools/gc_analyze/ToolPrefix.java: New.
* gnu/gcj/tools/gc_analyze/MemoryAnalyze.java: New.
* gnu/gcj/util/GCInfo.java: New.
* gnu/gcj/util/GCInfo.h: New.
* gnu/gcj/util/natGCInfo.cc: New.
* gnu/gcj/util/UtilPermission.java: New.
* gnu/gcj/util/UtilPermission.h: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/SymbolTable.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/BytePtr.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/ItemList.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/ToolPrefix.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/SymbolLookup.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap.class: New.
* classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap.class: New.
* classpath/lib/gnu/gcj/util/GCInfo.class: New.
* classpath/lib/gnu/gcj/util/UtilPermission.class: New.
libjava/classpath:
2007-02-15 David Daney <ddaney@avtrex.com>
* tools/Makefile.am (TOOLS_ZIP): Add classes from vm-tools-packages.
* tools/Makefile.in: Regenerated.
From-SVN: r122007
Diffstat (limited to 'libjava/gnu/gcj/util/GCInfo.java')
-rw-r--r-- | libjava/gnu/gcj/util/GCInfo.java | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/libjava/gnu/gcj/util/GCInfo.java b/libjava/gnu/gcj/util/GCInfo.java new file mode 100644 index 0000000..73f4718 --- /dev/null +++ b/libjava/gnu/gcj/util/GCInfo.java @@ -0,0 +1,79 @@ +/* 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); +} |