On Wed, Sep 5, 2012 at 12:29 AM, Andrew Haley <a...@redhat.com> wrote: > On 09/04/2012 09:31 PM, Dehao Chen wrote: >> Looks like even with addr2line properly installed, the gcj generated >> code cannot get the correct source file/lineno. Do I need to pass in >> >> #javac stacktrace.java >> #java stacktrace >> stacktrace.e(stacktrace.java:42) >> stacktrace.d(stacktrace.java:38) >> stacktrace.c(stacktrace.java:31) >> stacktrace.b(stacktrace.java:26) >> stacktrace.a(stacktrace.java:19) >> stacktrace.main(stacktrace.java:12) >> #gcj *.class -o stacktrace.exe >> #./stacktrace.exe >> stacktrace.e(stacktrace.exe:-1) >> stacktrace.d(stacktrace.exe:-1) >> stacktrace.c(stacktrace.exe:-1) >> stacktrace.b(stacktrace.exe:-1) >> stacktrace.a(stacktrace.exe:-1) >> stacktrace.main(stacktrace.exe:-1) > > Works for me: > > [aph@nighthawk ~]$ gcj stacktrace.java --main=stacktrace -g > [aph@nighthawk ~]$ ./a.out > stacktrace.e(stacktrace.java:42) > stacktrace.d(stacktrace.java:38) > stacktrace.c(stacktrace.java:31) > stacktrace.b(stacktrace.java:26) > stacktrace.a(stacktrace.java:19) > stacktrace.main(stacktrace.java:12) > > Aren't you just compiling without -g ? There is no debuginfo.
The other thing that might be needed is a newer addr2line which works correctly with the dwarf2(4) that GCC outputs. Thanks, Andrew