Java debugging

Andrew Haley aph at redhat.com
Tue Apr 29 08:38:35 UTC 2008


Jerry James wrote:
> To be able to debug a Java problem, I need class files compiled with
> -g and the source files.  Java packages set up for AOT compilation
> with GCJ do have debuginfo packages, but they are symbol files for the
> GCJ-compiled .so files only, with no source files.  Has anybody looked
> at what it would take to set things up for a reasonable Java debugging
> environment?  The source file problem can be solved pretty easily, I
> think, but what about compiling with -g?  I see 4 answers to that
> question:
> 
> 1. Never compile with -g.  People who want to debug have to recompile
> their own JARs.
> 2. Always compile with -g and make everybody eat the bloat.
> 3. Compile all Java code twice, once to create a debug JAR and once to
> create the normal distribution JAR.  The debug JAR goes into the
> corresponding debuginfo package.
> 4. Always compile with -g.  Store the original JAR in the
> corresponding debuginfo package, then strip out the debug symbols and
> put the resulting JAR into the regular package.

Most of this should not be necessary.  We have, or had, a modified version of
ecj that always generates debuginfo when an RPM is being compiled, so
if there exists any RPM that is missing debuginfo, that is a regression.

Also, when AOT-compiling, we should be generating the full paths for all
the source files and therefore all the sources should be in the debuginfo
packages.

Please tell me which package is missing these, and I'll find out which
of these mechanisms has broken.

Andrew.




More information about the fedora-devel-list mailing list