more gcj 3.0 fun -- catch { try {...}...}, encodings

Tom Tromey tromey@redhat.com
Tue Jun 26 09:33:00 GMT 2001


>> That's about it.  Sometimes you can rule out a runtime bug by
>> compiling to bytecode and running the program through `gij'.  I often
>> find this sort of comparison useful.

David> Or at least thought provoking.  Neither GCJ nor GIJ give the
David> correct output for this catch { try { ... } ... } construct,
David> but their failure modes are different ... maybe more than one
David> bug is lurking?  :)

That much we know!  :-)

If I suspect an interpreter or class library bug I run the code
through both gij and java.  Many times differences represent problems
(depending on how much the test relies on underspecified behavior).

If I suspect a bug in `gcj -C' I compile the code with both gcj and
javac, and then compare the two, either by running the code through
the interpreters, or by reading the bytecode with jcf-dump.

These are just handy tools to help me find the most likely locale of a
bug.  In the end there's only debugging.

The reason I suspected a compiler bug is that the EH code changed just
before the gcc 3.0 release, and gcj has already had a few EH bugs not
seen anywhere else.  I wouldn't be suprised if more lurk.

Tom



More information about the Java mailing list