[Patch] Java: Add heap dump and analyze support.
David Daney
ddaney@avtrex.com
Wed Jan 17 23:47:00 GMT 2007
This patch adds the ability to dump the contents of the runtime heap to
a file from a java program. Also included is a program (gc-analyze)
that analyzes the dump file and prints out a bunch of things about the
state of the heap.
Documentation about how to use this feature is in the included
gc-analyze documentation.
In addition to the usual machine generated files, all the .h and class
files are machine generated so are also omitted from the attached patch.
Tested on x86_64-linux and i686-linux.
I will re-test on those platforms as well as a mipsel-linux cross
compiler before committing.
Comments?
OK to commit?
gcc/java:
2007-01-17 David Daney <ddaney@avtrex.com>
* Make-lang.in (JAVA_MANFILES): Added doc/gc-analyze.1.
(java.maintainer-clean):Added gc-analyze.1.
(.INTERMEDIATE): Added gc-analyze.pod.
(gc-analyze.pod): New rule.
(java.install-man): Install gc-analyze.1
* gcj.texi: Added new section for the gc-analyze program.
libjava:
2007-01-17 Johannes Schmidt <jschmidt@avtrex.com>
David Daney <ddaney@avtrex.com>
* configure.ac: Added 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): Added gnu/gcj/util/natGCInfo.cc.
* Makefile.in: Regenerated.
* configure.ac: 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/MemoryAnalyze$SubstringComparator.h: New.
* gnu/gcj/tools/gc_analyze/SymbolLookup.java: New.
* gnu/gcj/tools/gc_analyze/BytePtr.h: New.
* gnu/gcj/tools/gc_analyze/ItemList.h: New.
* gnu/gcj/tools/gc_analyze/ToolPrefix.h: New.
* gnu/gcj/tools/gc_analyze/MemoryAnalyze.h: New.
* gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.h: New.
* gnu/gcj/tools/gc_analyze/ObjectMap.java: New.
* gnu/gcj/tools/gc_analyze/SymbolLookup.h: New.
* gnu/gcj/tools/gc_analyze/MemoryMap.java: New.
* gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.h: New.
* gnu/gcj/tools/gc_analyze/ObjectMap.h: New.
* gnu/gcj/tools/gc_analyze/MemoryMap.h: New.
* gnu/gcj/tools/gc_analyze/SymbolTable.java: New.
* gnu/gcj/tools/gc_analyze/SymbolTable.h: New.
* gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.h: New.
* gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.h: New.
* gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.h: 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/tools/gc_analyze/MemoryMap$Range.h: New.
* gnu/gcj/tools/gc_analyze/BlockMap.h: New.
* gnu/gcj/util/GCInfo.java: New.
* gnu/gcj/util/GCInfo.h: New.
* gnu/gcj/util/natGCInfo.cc: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/SymbolTable.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class:
New.
*
classpath/lib/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/BlockMap.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/BytePtr.class: New.
*
classpath/lib/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class:
New.
* classpath/lib/gnu/gcj/tools/gc_analyze/ItemList.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/ToolPrefix.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/SymbolLookup.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class:
New.
* classpath/lib/gnu/gcj/tools/gc_analyze/ObjectMap.class: New.
* classpath/lib/gnu/gcj/tools/gc_analyze/MemoryMap.class: New.
* classpath/lib/gnu/gcj/util/GCInfo.class: New.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: gc-analyze.diff.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070117/d44a58f0/attachment.txt>
More information about the Gcc-patches
mailing list