When the following test case is built with gcj -C, the innermost frame is missing from the stack trace:
public class Ex { void snafu( ) throws Exception { throw new Exception(); } void bar( ) throws Exception { snafu( ); } void foo( ) throws Exception { bar( ); } public static void main( String[] args) throws Exception { new Ex( ).foo( ); } } $ gij Ex Exception in thread "main" java.lang.Exception at Ex.snafu(Ex.java) at Ex.bar(Ex.java:6) at Ex.foo(Ex.java:9) at Ex.main(Ex.java:12) In addition, when built with a different bytecode compiler (ecj), the stack trace is complete, but has off-by-one line number errors: $ gij Ex Exception in thread "main" java.lang.Exception at Ex.snafu(Ex.java:3) at Ex.bar(Ex.java:7) at Ex.foo(Ex.java:10) at Ex.main(Ex.java:13) -- Summary: Interpreter: Stack trace line numbers sometimes missing or incorrect Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgcj AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mckinlay at redhat dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28352