FX <fxcoud...@gmail.com> writes: > 1. It appears that even on platforms with BACKTRACE_SUPPORTED == 0 > (such as x86_64-apple-darwin), libbacktrace is built and able to > perform a nonsymbolic backtrace (which appears accurate). Is that a > feature? Can I rely on it?
Yes, that is a feature. You should always get accurate PC values even on systems where libbacktrace does not yet generate file/line information. > 2. The backtraces I get on x86_64-linux-gnu are missing symbols. The > attached source file, compiled with “gfortran -g” with the attached > patch, gives the following backtrace with libgfortran’s existing code, > which uses unwind and calls to addr2line: > >> #0 0x7F4F6E333467 >> #1 0x7F4F6E334C42 >> #2 0x7F4F6E409308 >> #3 0x4008A3 in bar at a.f90:9 >> #4 0x4008C8 in foo at a.f90:5 >> #5 0x4008AF in test at a.f90:2 > > > with my patch using libbacktrace, I get: > >> 0x7f04f00f8c7d _gfortrani_show_backtrace >> ../../../trunk/libgfortran/runtime/backtrace.c:112 >> 0x7f04f00f9ac4 _gfortrani_sys_abort >> ../../../trunk/libgfortran/runtime/error.c:176 >> 0x7f04f01c8c78 _gfortran_abort >> ../../../trunk/libgfortran/intrinsics/abort.c:33 >> 0x4008a3 ??? >> /home/fx/gcc/irun/a.f90:9 >> 0x4008c8 ??? >> /home/fx/gcc/irun/a.f90:5 >> 0x4008af test >> /home/fx/gcc/irun/a.f90:2 >> 0x4008ff main >> /home/fx/gcc/irun/a.f90:2 > > > where the symbols for foo() and bar() are apparently not found, though > the source location is. Am I missing something here? I’m attaching the > output of “dwarfdump a.out” and the a.out executable file itself > (gzipped). I don't know why this is not working. Everything looks fine in the a.out that you sent. Unfortunately, I think you sent the one built without libbacktrace. Can you send me the one built with libbacktrace? Thanks. Ian