[Patch] Java: Add heap dump and analyze support.

David Daney ddaney@avtrex.com
Wed Feb 14 23:22:00 GMT 2007


New version of the patch.

Tom Tromey wrote:
>>>>>> "David" == David Daney <ddaney@avtrex.com> writes:
>>>>>>             
>
>   
>>> I wonder if we could fix this by putting the new tool code into
>>> standard.omit, and then compile it separately using a special rule of
>>> some kind, with a classpath pointing to the tools zip.
>>>       
>
> David> Ok, I added some rules to classpath/lib/Makefile.am, that parallel the
> David> special libgcj rules, to build gcj tools with a different classpath.
> David> To build more packages this way (i.e. gcj_dbtool), it should be as
> David> simple as adding the package name to the list in libjava's
> David> configure.ac. There will no longer be any excuses to prevent us from
> David> converting gcj_dbtool to use the getopt things.
>
> David> OK to commit if no regressions?
>
> I was hoping for 2 things, which I didn't communicate well.
>
> One is, no changes to libjava/classpath/.  But I realize now that this
> is too hard.
>
> The other is, not adding the tools classes to AM_GCJFLAGS.
>
> Instead of adding a new script in classpath/lib, would it be posssible
> to build the new tool code in classpath/tools/Makefile?  Then the new
> tool could be built in libjava/Makefile.am following the recipe for
> all the other classpath tools.
>   
Done (I hope!).

That should be the last problem with the patch.

Initial build looks good.  I will finish testing tonight.

OK to commit if no regressions?

gcc/java:
2007-02-14  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-14  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-14  David Daney  <ddaney@avtrex.com>

    * tools/Makefile.am (TOOLS_ZIP): Add classes from vm-tools-packages.
    * tools/Makefile.in: Regenerated.


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: gc-analyze.diff.txt
URL: <http://gcc.gnu.org/pipermail/java-patches/attachments/20070214/c7b7407b/attachment.txt>


More information about the Java-patches mailing list