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).

Reply via email to