https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117941
Richard Earnshaw <rearnsha at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |WONTFIX --- Comment #3 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- The Arm unwind section tables are defined by the Arm EABI; they only provide enough data for call-based exceptions to be unwound. It is not the same as the dwarf based tables and cannot support non-call exceptions. Leaf functions are therefore always marked as can't unwind (this is necessary because the search algorithm for unwind data will just look for the latest entry in the table that is before the current PC value). The data is not intended to permit arbitrary backtraces to be printed out. The compressed tables can save significant amounts of space in the binary compared with the dwarf based tables; that's important in some embedded environments where all this data needs to be saved in flash on the device. Performing a full backtrace from arbitrary code requires using dwarf unwind data (eg as produced with -g).