Debugging memory leaks

Hans Boehm Hans.Boehm@hp.com
Sun Apr 17 18:26:00 GMT 2005


Unfortunately, you currently have to rebuild libgcj to get this
functionality. You need to build with --enable-gc-debug.
If you are debugging an application that can be made to leak most of
the memory in its heap, you can usually get the information you want by
setting the GC_BACKTRACES environment variable to a small integer. This
will print the indicated number of backtraces from random addresses at
each pc.
If you need something more specific, look at gc_backptr.h. You should be
able to use this directly from a debugger. But watch out for unintended
reflection: It's easy for this stuff to accidentally find "pointers" from
your debugging code itself.
Hans
On 2005年4月15日, Andrew Haley wrote:
> I've been having a great deal of difficulty tracking down memory leaks
> in libgcj.
>> What I need is some sort of interface that allows me to enquire who
> points to an object. The ideal interface would be something like
> points_to (obj) -> obj. I realize that in practice there is a set of
> objects that point to a particular object, but that doesn't concern
> me: one is all I need.
>> Is there any interface within the GC that can give me this function?
> If not, how hard would it be to provide? Can you provide me with some
> guidance?
>> Ideally, I'd love to have something like Glasgow Haskell Compiler's
> heap profiling, but I'll settle for much less.
>> Thanks,
> Andrew.
>


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /