https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117941
--- Comment #6 from Mathieu Othacehe <m.othacehe at gmail dot com> --- (In reply to Richard Earnshaw from comment #5) > > Is it then possible to have dwarf data on ARM in addition to the EABI > > defined unwind section? > > I don't know, honesty, because I've not tried it. I'd be surprised if it > worked though, at least, not without hacking the linker scripts. The dwarf > data normally lives in the debug sections, which aren't loaded when the > binary is executed (it's just available to a debugger). > > The original version of the EABI specification did not support a frame > chain, but this was added as an option in the recent versions. This would > enable a (nearly) complete backtrace of the call stack without needing other > data (just access to the symbol table). Sadly, however, this is yet to be > implemented in gcc (the existing code doesn't correctly support thumb and > certainly doesn't support Arm and thumb together in the same binary. For the record, when using the .debug_frame section that is present on ARMv7 binaries, I am able to get full backtraces with libunwind: Unexpected exception caught! Backtrace: 0x4b0c7d: unexpected_handler() + 0x1b 0xb6dded55: __cxxabiv1::__terminate(void (*)()) + 0x3 0xb6ddedb7: std::terminate() + 0x9 0xb6ddf023: __cxa_rethrow + 0x2d 0x4b0c61: uncaught_function() + 0x7 0x4b0c9f: main + 0x11 0xb6c317c7: __libc_start_call_main + 0x41 0xb6c31871: __libc_start_main + 0x5f 0x4b0901: _start + 0x27 Aborted